파이썬기초-11 람다 함수
람다 함수
- 코드의 간결함 및 메모리 절약 이유로 많이 사용
- return 키워드 없이 자동으로 return
# 기존 함수
def add(x):
return x + 1
print(add(3))
# 람다 함수
print((lambda x : x + 1)(3))
func = lambda x: x + 1
print(func(3))
4
4
4
a = [1, 6, 2, 5, 2, 7, 2, 8, 9, 11, 5, 26]
b = [12, 16, 24, 5, 20, 27, 12, 8, 9, 110, 51, 26]
list(map(lambda x, y : x + y, a, b))
[13, 22, 26, 10, 22, 34, 14, 16, 18, 121, 56, 52]
map()
- 함수와 리스트를 인자로 받아서 리스트로부터 원소를 하나씩 꺼내어 함수를 적용한 다음 새로운 리스트에 담아줌
map()
함수를 사용한다면 항상 결과를 list로 받아줘야함
result = map(lambda x: x ** 2, [1, 2, 3, 4, 5])
print(result)
print(list(result))
print(list(map(lambda x: x ** 2, [1, 2, 3, 4, 5])))
<map object at 0x000002260F414DC0>
[1, 4, 9, 16, 25]
[1, 4, 9, 16, 25]
filter()
- 함수와 리스트를 인자로 받아서 리스트에 들어있는 원소들을 각각 꺼내어 함수를 적용시켜 참인 값들로 새로운 리스트에 담아줌
filter()
함수를 사용한다면 항상 결과를 list로 받아줘야함
result = filter(lambda x: x < 5, range(10))
print(result)
print(list(result))
print(list(filter(lambda x: x < 5, range(10))))
<filter object at 0x000002260F414910>
[0, 1, 2, 3, 4]
[0, 1, 2, 3, 4]
람다 안에 if문
list(map(lambda x : "A" if x >= 80 else "B", range(0, 100, 10)))
['B', 'B', 'B', 'B', 'B', 'B', 'B', 'B', 'A', 'A']
댓글남기기