cf )
일반함수와 람다 함수의 비교
# 일반함수
def test(a,b,c):
return a+b+c
result = test(1,2,3)
print(result)
# 6
# 람다 함수
cul = lambda a, b, c: a + b+ c
print (cul(1,2,3))
# 6
map 함수 일반 함수로 구현
digits = [x * 10 for x in range(1,11)]
print(digits1) # [10, 20, 30, 40, 50, 60, 70, 80, 90, 100]
def squared(x):
return x ** 2
result = map(squared, digits1)
print(result) #<map object at 0x00000191A4E53C70>
print(list(result)) # [100, 400, 900, 1600, 2500, 3600, 4900, 6400, 8100, 10000]
map 함수 lambda 함수로 구현
digits = [x * 10 for x in range(1,11)]
print(digits1) # [10, 20, 30, 40, 50, 60, 70, 80, 90, 100]
result2 = list(map(lambda i: i ** 2, digits1))
print(result2) # [100, 400, 900, 1600, 2500, 3600, 4900, 6400, 8100, 10000]
map 함수 모듈화로 활용 : 재사용이 많은 경우 활용
def also_squared(nums):
def double(x):
return x ** 2
return map(double, nums)
함수에는 True 나 False 를 판별해주는 조건문이 들어가야 한다.
ex ) x % 2 == 0
filter 함수 람다 함수로 구현
digits2 = [1,2,3,4,5,6,7,8,9,10,11,12]
result = list(filter(lambda x: x % 2 == 0, digits2))
print(result) # [2, 4, 6, 8, 10, 12]
일반함수 + 패키지 모듈로 활용 : 재사용이 많은 경우 활용
digits2 = [1,2,3,4,5,6,7,8,9,10,11,12]
def also_evens(nums):
def is_even(x):
return x % 2 ==0
return fitler(is_even, nums)