728x90
lambda 장점 : 사용 즉시 메모리에서 소멸 , pythonic, 1회성 사용 시 좋음
일반함수 : 재사용성 위해 메모리 저장
lambda 사용
digits1 = [x * 10 for i in range(1,11)]
result = list(map(lambda i: i**2, digits1)) #lambda i 매개변수 :i**2 반환값
print(result)
결과 : [100,400,900,1600 ... 10000]
lambda 매개변수 : 반환값
map으로 함수를 인자로 입력받고 리스트값을 한개씩 순회하면 결과 반환
일반함수 사용
def also_sauare(nums):
def double(x):
return x**2
return map(double,nums)
print(list(also_square(digits1)))
결과: [100,400,900,1600,...10000]
lambda + filter 로 짝수 찾기
digits2 = [i for i in range(1,11)]
result = list(filter(lambda x: x % 2 == 0), digits2)
결과 : [2,4,6,7,10]
filter(함수,순회가능한 데이)
lambda 결과값이 참일 경우 반환
일반함수 사용
def also_evens(nums):
def is_even(x):
return x%2 == 0
return filter(is_even,nums)
결과 : [2,4,6,8,10]
reduce
from functools import reduce
digits3 = [x for i in range(1,101)]
result = reduce(lambad x,y : x+y, digits3)
print(result)
결과 : 5050
리스트가아닌 반환값을 모두 더 한 값이 최종결과값으로 반환
일반함수 사용
def also_add(nums):
def add_plus(x,y):
return x+y
return reduce(add_plus,nums)
print(also_add(digits3))
결과 : 5050728x90
'Python' 카테고리의 다른 글
| [python] Context Manager (0) | 2025.01.26 |
|---|---|
| [python] Shallow Copy & Deep Copy (얕은 복사와 깊은 복사) (0) | 2025.01.12 |
| [Python] 클로저(closure) (0) | 2025.01.01 |