[νμ΄μ¬/python] λλ€ν¨μ (lambda)
λλ€ν¨μ(lambda)λ λ°νμμ μμ±ν΄μ μ¬μ©ν μ μλ μ΅λͺ ν¨μλ‘, μ°κ³ λ²λ¦¬λ μΌμμ μΈ ν¨μμ΄λ€.
κ°λ¨ν κΈ°λ₯μ μΌλ°μ μΈ ν¨μμ κ°μ΄ μ μν΄λκ³ μ°λ κ²μ΄ μλλΌ νμν κ³³μμ μ¦μ μ¬μ©νκ³ λ²λ¦΄ μ μλ€.
κ·Έλ κΈ° λλ¬Έμ λλ€ν¨μλ κ°λ¨ν ν¨μλ₯Ό νλ²λ§ μ¬μ©ν λ μ¬μ©νλ€.
lambda μΈμ : ννμ
lambdaλ lambda μΈμ : ννμμ ννλ‘ μ¬μ©νλ€.
ν¨μ μ΄λ¦λ μκ³ returnλ νμμλ€.
λλ€ν¨μκ° μ΄μ©λλ κ³³μ λνμ μΈ μλ‘λ map(), reduce(), filter()κ° μλ€.
map()
map(ν¨μ, 리μ€νΈ)
map(lambda x: x**2, range(5))
>>> 0 1 4 9 16
mapμ map(ν¨μ, 리μ€νΈ)μ ννλ‘ μ¬μ©λλ©°,
ν¨μλ₯Ό 리μ€νΈμ λͺ¨λ μμμ λν΄ μ μ©νλ€.
μμ μμλ ν¨μμ리μ μ«μλ₯Ό μ κ³±νλ λλ€μμ ν΅ν΄
ν΄λΉλ²μ 0λΆν° 4κΉμ§μ μ«μλ₯Ό μ κ³±νλ€λ μλ―Έμ΄λ€.
reduce()
reduce(ν¨μ, 리μ€νΈ)
from functools import reduce
reduce(lambda x,y : x+y, [0,1,2,3,4])
>>> 10
reduceλ reduce(ν¨μ, 리μ€νΈ)μ ννλ‘ μ¬μ©λλ©°,
리μ€νΈμ κ° μμλ₯Ό ν¨μλ‘ μ²λ¦¬ν λ€ μ΄μ κ²°κ³Όμ λμ ν΄μ λ°ννλ€.
reduceλ₯Ό μ¬μ©νκΈ° μν΄ functools λͺ¨λμμ reduce ν¨μλ₯Ό κ°μ ΈμμΌνλ€.
μμ μμλ ν¨μμ리μ λ μλ₯Ό λνλ λλ€μμ ν΅ν΄
μ°μ μ²μμ 리μ€νΈμ λ μλ₯Ό λν λ€μ κ·Έ κ²°κ³Όλ₯Ό λ€μ μμ λν΄ λμ νμ¬ κ³μ°νλ€.
κ²°κ³Όμ μΌλ‘ 리μ€νΈμ λͺ¨λ μλ₯Ό λ€ λν κ°μ λ°ννκ² λλ€.
filter()
filter(ν¨μ, 리μ€νΈ)
list(filter(lambda x: x%3 == 0, [1,2,3,4,5,6])
>>> [3,6]
filterλ filter(ν¨μ, 리μ€νΈ)μ ννλ‘ μ¬μ©λλ©°,
리μ€νΈμ κ° μμ μ€ ν¨μμ ν΄λΉνλ μμλ§ λ¦¬μ€νΈννμ¬ λ°ννλ€.
μμ μμλ ν¨μμ리μ 3μΌλ‘ λλ λλ¨Έμ§κ° 0μΈ μλ₯Ό λ°ννλ λλ€μμ ν΅ν΄
리μ€νΈμ μμ μ€ 3μ λ°°μλ§μ 리μ€νΈννμ¬ μΆλ ₯νλ€.
'πμκ³ λ¦¬μ¦ > π κ°λ μ 리' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[νμ΄μ¬/python] ν (Queue) (0) | 2021.03.19 |
---|---|
[νμ΄μ¬/python] μ λ ¬ - sort(), sorted() (0) | 2021.03.17 |
[νμ΄μ¬/python] μ΄μ§ νμ (Binary Search) (0) | 2021.03.17 |
[νμ΄μ¬/python] λμ λ리 (dictionary) (0) | 2021.03.12 |
[νμ΄μ¬/python] μλΌν μ€ν λ€μ€μ 체 (0) | 2021.03.10 |