๐Ÿ”ฌ Explore/ํŒŒ์ด์ฌ

[ํŒŒ์ด์ฌ] lambda(๋žŒ๋‹ค) ํ•จ์ˆ˜

devCloud 2024. 10. 30. 22:08
728x90

lambda ํ•จ์ˆ˜

ํŒŒ์ด์ฌ์˜ lambda ํ•จ์ˆ˜๋Š” ์ต๋ช… ํ•จ์ˆ˜๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์ด๋‹ค. lambda๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด, def ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ ๋„ ๊ฐ„๋‹จํ•œ ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค. ์ฃผ๋กœ ์งง๊ณ  ๊ฐ„๋‹จํ•œ ํ•จ์ˆ˜๊ฐ€ ํ•„์š”ํ•  ๋•Œ ์‚ฌ์šฉ๋œ๋‹ค.

 

 

๊ธฐ๋ณธ ๊ตฌ๋ฌธ

lambda ์ธ์ž1, ์ธ์ž2, ... : ํ‘œํ˜„์‹
  • lambda : ํ‚ค์›Œ๋“œ
  • ์ธ์ž : ์ž…๋ ฅ ์ธ์ž
  • ํ‘œํ˜„์‹ : ํ•จ์ˆ˜๊ฐ€ ๋ฐ˜ํ™˜ํ•  ๊ฐ’ (ํ•˜๋‚˜์˜ ํ‘œํ˜„์‹๋งŒ ๊ฐ€๋Šฅ)

 

์‚ฌ์šฉ ๋ฐฉ๋ฒ•

 

1๏ธโƒฃ ๊ธฐ๋ณธ ์‚ฌ์šฉ๋ฒ•

# ๋‘ ์ˆ˜์˜ ํ•ฉ์„ ๊ณ„์‚ฐํ•˜๋Š” lambda ํ•จ์ˆ˜
add = lambda x, y: x + y
result = add(5, 3)
print(result)  # ์ถœ๋ ฅ: 8
  • lambda x, y: x + y๋Š” ๋‘ ๊ฐœ์˜ ์ธ์ž๋ฅผ ๋ฐ›์•„ ํ•ฉ์„ ๊ณ„์‚ฐํ•˜๋Š” ํ•จ์ˆ˜์ด๋‹ค.

 

2๏ธโƒฃ ๋ฆฌ์ŠคํŠธ ์ •๋ ฌ์— ์‚ฌ์šฉ

lambda ํ•จ์ˆ˜๋Š” ์ข…์ข… ์ •๋ ฌ์ด๋‚˜ ํ•„ํ„ฐ๋ง๊ณผ ๊ฐ™์€ ๊ณ ์ฐจ ํ•จ์ˆ˜์—์„œ ์‚ฌ์šฉ๋œ๋‹ค.

# ํŠœํ”Œ ๋ฆฌ์ŠคํŠธ๋ฅผ ๋‘ ๋ฒˆ์งธ ์š”์†Œ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์ •๋ ฌ
data = [(1, 'apple'), (3, 'banana'), (2, 'cherry')]
sorted_data = sorted(data, key=lambda x: x[1])
print(sorted_data)  # ์ถœ๋ ฅ: [(1, 'apple'), (3, 'banana'), (2, 'cherry')]
  • key=lambda x: x[1]์—์„œ ๊ฐ ํŠœํ”Œ์˜ ๋‘ ๋ฒˆ์งธ ์š”์†Œ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์ •๋ ฌํ•œ๋‹ค.

 

3๏ธโƒฃ map()๊ณผ filter()์—์„œ ์‚ฌ์šฉ

lambda๋Š” map()์ด๋‚˜ filter()์™€ ๊ฐ™์€ ๊ณ ์ฐจ ํ•จ์ˆ˜์—์„œ๋„ ์ž์ฃผ ์‚ฌ์šฉ๋œ๋‹ค.

# ๋ฆฌ์ŠคํŠธ์˜ ๊ฐ ์š”์†Œ์— 2๋ฅผ ๊ณฑํ•˜๊ธฐ
numbers = [1, 2, 3, 4]
doubled = list(map(lambda x: x * 2, numbers))
print(doubled)  # ์ถœ๋ ฅ: [2, 4, 6, 8]

# ๋ฆฌ์ŠคํŠธ์—์„œ ์ง์ˆ˜๋งŒ ํ•„ํ„ฐ๋ง
evens = list(filter(lambda x: x % 2 == 0, numbers))
print(evens)  # ์ถœ๋ ฅ: [2, 4]

 

 

์ฃผ์˜ ์‚ฌํ•ญ

  • lambda ํ•จ์ˆ˜๋Š” ์—ฌ๋Ÿฌ ๊ฐœ์˜ ํ‘œํ˜„์‹์ด๋‚˜ ๋ณต์žกํ•œ ๋กœ์ง์„ ํฌํ•จํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๋‹จ์ผ ํ‘œํ˜„์‹๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ๊ฐ€๋…์„ฑ์„ ์œ„ํ•ด ๋„ˆ๋ฌด ๋ณต์žกํ•œ ๋กœ์ง์„ lambda๋กœ ์ž‘์„ฑํ•˜๋Š” ๊ฒƒ์€ ํ”ผํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค.

 

์š”์•ฝ

  • lambda๋Š” ์งง๊ณ  ๊ฐ„๋‹จํ•œ ํ•จ์ˆ˜๋ฅผ ์ •์˜ํ•  ๋•Œ ์‚ฌ์šฉ๋˜๋Š” ์ต๋ช… ํ•จ์ˆ˜์ด๋‹ค.
  • ์ฃผ๋กœ ์ •๋ ฌ, ํ•„ํ„ฐ๋ง, ๋งคํ•‘๊ณผ ๊ฐ™์€ ๊ณ ์ฐจ ํ•จ์ˆ˜์™€ ํ•จ๊ป˜ ์‚ฌ์šฉ๋œ๋‹ค.
  • lambda ํ•จ์ˆ˜๋Š” ๋‹จ์ผ ํ‘œํ˜„์‹๋งŒ ํ—ˆ์šฉํ•˜๋ฉฐ, def๋กœ ์ž‘์„ฑํ•œ ํ•จ์ˆ˜์™€ ๊ฐ™์€ ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค.

 


728x90