Lambda ν¨μλ 무μμΈκ°?
Lambda ν¨μλ μ΅λͺ ν¨μ(anonymous function)λ₯Ό μμ±νλλ° μ¬μ©λλ ν¨μμ λλ€. μ΄λ¬ν ν¨μλ λ³μμ λμ νμ¬ ν¨μλ₯Ό μ μ₯νκ±°λ, μΈμ(argument)λ‘ λ€λ₯Έ ν¨μμ μ λ¬νκ±°λ, λ°νκ°μΌλ‘ λ€λ₯Έ ν¨μμμ μ¬μ©λ μ μμ΅λλ€.
Lambda ν¨μλ κ°λ¨ν κΈ°λ₯μ κ°μ§κ³ μμΌλ©°, μΌλ°μ μΌλ‘ ν μ€ μμ μ μλ©λλ€. μ΄λ¬ν νΉμ§ λλ¬Έμ, Lambda ν¨μλ νΉλ³ν ꡬ문μ μ¬μ©νμ¬ μμ±λ©λλ€.
Lambda ν¨μμ ꡬ문
Lambda ν¨μμ ꡬ문μ λ€μκ³Ό κ°μ΅λλ€.
lambda arguments: expression
μ¬κΈ°μ arguments
λ ν¨μμ μ λ¬λ μΈμ(argument)λ€μ λͺ©λ‘μ
λλ€. expression
μ μΈμλ₯Ό μ΄μ©νμ¬ κ³μ°ν ννμμ
λλ€.
λ€μμ κ°λ¨ν μμμ λλ€.
# λνκΈ° ν¨μλ₯Ό μ μν©λλ€.
def add(x, y):
return x + y
# Lambda ν¨μλ₯Ό μ¬μ©νμ¬ λνκΈ° ν¨μλ₯Ό μ μν©λλ€.
add_lambda = lambda x, y: x + y
# ν¨μλ₯Ό νΈμΆν©λλ€.
print(add(2, 3)) # μΆλ ₯: 5
print(add_lambda(2, 3)) # μΆλ ₯: 5
μμ μ½λμμ, add_lambda
λ lambda
ν€μλλ₯Ό μ¬μ©νμ¬ λνκΈ° ν¨μλ₯Ό μ μν μμμ
λλ€.
Lambda ν¨μμ νμ©
Lambda ν¨μλ μ£Όλ‘ λ€λ₯Έ ν¨μλ€μ μΈμλ‘ μ λ¬λκ±°λ, λ°νκ°μΌλ‘ μ¬μ©λ©λλ€.
μλ₯Ό λ€μ΄, sorted()
ν¨μλ 리μ€νΈλ₯Ό μ λ ¬ν λ μ¬μ©λ©λλ€. μ΄ ν¨μλ key
μΈμλ₯Ό μ¬μ©νμ¬ λ¦¬μ€νΈμ κ° μμμ λν μ λ ¬ κΈ°μ€μ μ€μ ν μ μμ΅λλ€. key
μΈμλ‘ Lambda ν¨μλ₯Ό μ λ¬νμ¬ λ¦¬μ€νΈλ₯Ό μ λ ¬ν μ μμ΅λλ€.
# λ¬Έμμ΄μ κΈΈμ΄λ₯Ό κΈ°μ€μΌλ‘ 리μ€νΈλ₯Ό μ λ ¬ν©λλ€.
words = ['apple', 'banana', 'cherry', 'durian']
sorted_words = sorted(words, key=lambda x: len(x))
print(sorted_words) # μΆλ ₯: ['apple', 'cherry', 'banana', 'durian']
μμ μ½λμμ, key
μΈμλ‘ μ λ¬λ Lambda ν¨μλ λ¬Έμμ΄μ κΈΈμ΄λ₯Ό κ³μ°νμ¬ μ λ ¬ κΈ°μ€μΌλ‘ μ¬μ©λ©λλ€.
Lambda ν¨μλ λν map()
ν¨μ, filter()
ν¨μ λ±κ³Ό ν¨κ» μ¬μ©λ μ μμ΅λλ€. μ΄λ¬ν ν¨μλ€μ μνμ€ λ°μ΄ν°μ λν μ²λ¦¬λ₯Ό μ½κ² ν μ μλλ‘ ν΄μ€λλ€.
# 리μ€νΈμ κ° μμλ₯Ό μ κ³±νμ¬ μλ‘μ΄ λ¦¬μ€νΈλ₯Ό μμ±ν©λλ€.
numbers = [1, 2, 3, 4, 5]
squared_numbers = list(map(lambda x: x ** 2, numbers))
print(squared_numbers) # μΆλ ₯: [1, 4, 9, 16, 25]