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
'๐ฌ Explore > ํ์ด์ฌ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| [ํ์ด์ฌ] ์ด์ง๋ฒ, ์ด์ง์, 2์ง์ ๋ณํ ๋ฐฉ๋ฒ (0) | 2024.11.15 |
|---|---|
| [ํ์ด์ฌ] ์์ด(Permutations) ๊ณผ ์กฐํฉ(Combinations) (0) | 2024.11.06 |
| [ํ์ด์ฌ] enumerate() ํจ์ (0) | 2024.10.29 |
| [ํ์ด์ฌ] set, ์งํฉ ํจ์ (0) | 2024.10.29 |
| [ํ์ด์ฌ] zip() ํจ์ (0) | 2024.10.25 |