Language/python

[python] lambda(λžŒλ‹€) ν‘œν˜„μ‹

히욀 2021. 6. 25. 22:37

πŸ“Œ λžŒλ‹€ ν‘œν˜„μ‹μ΄λž€

λžŒλ‹€ ν‘œν˜„μ‹μ€ 식 ν˜•νƒœλ‘œ μ΄λ£¨μ–΄μ Έμžˆλ‹€.

ν•¨μˆ˜λ₯Ό κ°„νŽΈν•˜κ²Œ μž‘μ„±ν•  수 μžˆμ–΄μ„œ 닀름 ν•¨μˆ˜μ˜ 인수둜 넣을 λ•Œ 주둜 μ‚¬μš©λœλ‹€.

 

 

πŸ“Œ λžŒλ‹€ ν‘œν˜„μ‹μœΌλ‘œ ν•¨μˆ˜ λ§Œλ“€κΈ°

βœ”οΈ def ν•¨μˆ˜ ν‘œν˜„μ‹μœΌλ‘œ ν•¨μˆ˜ λ§Œλ“€κΈ°

def plus_ten(x):
	return x + 10
    
print(plus_ten(1))
# 11

 

βœ”οΈ λžŒλ‹€ ν‘œν˜„μ‹μœΌλ‘œ μž‘μ„±ν•˜κΈ°

lambda 맀개 λ³€μˆ˜λ“€: λ°˜ν™˜ν•  식
plus_ten = lambda x: x + 10
print(plus_ten(1))
# 11

 

βœ”οΈ λžŒλ‹€ ν‘œν˜„μ‹ 자체λ₯Ό ν˜ΈμΆœν•˜κΈ°

(lambda λ§€κ°œλ³€μˆ˜λ“€: 식)(μΈμˆ˜λ“€)
print((lambda x: x + 10)(1))
# 11

 

βœ”οΈ λžŒλ‹€ ν‘œν˜„μ‹ μ•ˆμ—λŠ” λ³€μˆ˜λ₯Ό λ§Œλ“€ 수 μ—†λ‹€!

(lambda x: y=10; x+y)(1)
# SyntaxError: invalid syntax

 

βœ”οΈ λžŒλ‹€ ν‘œν˜„μ‹ λ°”κΉ₯의 λ³€μˆ˜λ₯Ό μ‚¬μš©ν•  수 있음

y = 10
print((lambda x: x+y)(1))
# 11

 

 

 

πŸ“Œ λžŒλ‹€ ν‘œν˜„μ‹μ„ 인수둜 μ‚¬μš©ν•˜κΈ°

βœ”οΈ defν•¨μˆ˜λ‘œ map을 μ‚¬μš©ν•˜κΈ°

def plus_ten(x):
	return x + 10
    
list(map(plus_ten, [1, 2, 3]))
# [11, 12, 13]

 

βœ”οΈ λžŒλ‹€ ν‘œν˜„μ‹μ„ map에 직접 λ„£κΈ°

list(map(lambda x: x + 10, [1, 2, 3]))
# [11, 12, 13]