-
04. Lambda๋ฅผ ๋น๋กฏํ ์ฌ๋ฌ ํจ์
Lambda....... ์์ ์์๋ ์ด๊ฑธ ๊ทธ๋ฅ ๋๊ฒผ๋ ๊ฑฐ ๊ฐ๊ณ ์ค์ ๋ก ๋ฐ๋ก ๊ณต๋ถํ ๋๋ ๋ญ ์๋ฆฐ์ง ๋ชจ๋ฅด๊ฒ ์ด์ ๊ทธ๋ฅ ๋๊ฒผ์๋๋ฐ Lambda๋ฅผ ์ด์ฉํด์ ํธ๋ ๋ฌธ์ ๊ฐ ๋์๋ค. ์ด์ ๋ ํผํ์ง ๋ง๊ณ ๋ค์ ๋ณผ ๋๊ฐ ์๋ค.
์ด ๋ฌธ์ ์์๋ 4๊ฐ์ ํจ์๋ฅผ ์ํ๋๋ฐ, ์ผ๋จ 4๊ฐ์ง ํจ์๋ฅผ ์ดํด๋ณด๋๋ก ํ๊ฒ ๋ค.
(1) list()
์ธ์๋ฅผ ๋ฆฌ์คํธ๋ก ๋ฐ๊ฟ์ฃผ๋ ํจ์๋ค.
(2) filter(function, iterable)
์ด๋ฆ๊ณผ ๋น์ทํ๊ฒ ์ฌ์ฉ์๊ฐ ์ํ๋ ์กฐ๊ฑด์ ๋ง์ถฐ์ '๊ฑธ๋ฌ'์ฃผ๋ ํจ์๋ค.
์ธ์๋ก 2๊ฐ์ง๊ฐ ํ์ํ๋ฐ ์กฐ๊ฑด๊ณผ iterableํ ๋ฐ์ดํฐ๋ค.
์กฐ๊ฑด์ ํจ์๋ฅผ ์ ์ํ๊ฑฐ๋, lambda๋ฅผ ์ด์ฉํด์ ์ค์ ํด ์ค ์ ์๋ค.
https://bluese05.tistory.com/66
(3) Lambda
lambda ๋งค๊ฐ๋ณ์๋ค : ์
ํ์์ผ๋ก ์ฌ์ฉํ๋ค.
๊ฐ๋จํ๊ฒ ์ผํ์ฑ ํจ์๋ฅผ ๋ง๋ค ๋ ์ฃผ๋ก ์ฌ์ฉ๋๋ฉฐ ์ธ์๋ก ์ฃผ๋ก ์ฌ์ฉ๋๋ค.
๋ ์์ธํ ์ค๋ช ์ ์๋ ๋งํฌ๋ฅผ ์ฐธ๊ณ ํ๋ฉด ์ข๋ค.
https://dojang.io/mod/page/view.php?id=2359
(4) map(function, iterable)
์๋ณธ ๋ฆฌ์คํธ๋ฅผ ๋ณ๊ฒฝํ์ง ์๊ณ , ์ ๋ฆฌ์คํธ๋ฅผ ์์ฑํด์ ๋ฆฌ์คํธ์ ์์๋ฅผ ์ง์ ๋ ํจ์๋ก ์ฒ๋ฆฌํด ์ฃผ๋ ํจ์๋ค.
https://dojang.io/mod/page/view.php?id=2286
์ด์ ๋ฌธ์ ๋ฅผ ํ์ด๋ณผ ์๊ฐ์ด๋ค.
์ ๋ค ๊ฐ์ง ํจ์๋ฅผ ์ ์กฐํฉํด ๋ณด์.
๋จผ์ foo ๋ฆฌ์คํธ๋ฅผ ๋ง๋ค์ด์ค๋ค.
foo = [1,38,23,9,5,2]
์กฐ๊ฑด์ ์ดํด๋ณด๋ฉด ๋ ๊ฐ์ง๊ฐ ์๋ค.
1. 20๋ณด๋ค ํฐ ์๋ง ๋จ๊ธด๋ค.
2. 2๋ฅผ ๊ณฑํ๋ค.
๋จผ์ ์กฐ๊ฑด 1์ ์คํํด๋ณด์.
filted_foo = filter(lambda x:(x>20)==1, foo)
filterํจ์๋ฅผ ์ด์ฉํด์ foo์์ ์ํ๋ ์กฐ๊ฑด์ ์ธ์๋ง ์ด์ฉํด์ ์๋กญ๊ฒ filted_foo๋ฅผ ๋ง๋ค์ด ์ฃผ์๋ค.
์กฐ๊ฑด์ ๋ฃ์ ๋์๋ lambda ํจ์๋ฅผ ์ด์ฉํ๋ค. lambda์ ๊ฒฐ๊ด๊ฐ์ด T๊ฐ ๋์ค๋ ์ธ์๋ง์ ๋ชจ์์ ๋ฆฌ์คํธ๋ฅผ ๋ง๋ ๋ค.
bar = list(map(lambda x:x*2, filted_foo))
map์ ์ด์ฉํด์ ๋ฆฌ์คํธ์ ์ธ์๋ค์ 2๋ฅผ ๊ณฑํด์ค๋ค. 2๋ฅผ ๊ณฑํด์ฃผ๋ ํจ์๋ lambda๋ฅผ ์ด์ฉํด์ ๋ง๋ค์๋ค.
๋ง์ง๋ง์ผ๋ก list๋ฅผ ์ด์ฉํด์ ์ธ์๋ค์ list๋ก ๋ฌถ์ด์ฃผ๋ฉด ๋๋ค.
print(bar)
[76, 46] ๊ฒฐ๊ณผ๊ฐ์ด ์ ๋์ค๋ ๋ชจ์ต์ ํ์ธํ ์ ์๋ค.
์ฌ๋ฌ ํจ์๋ฅผ ์ ์์ด ์ฐ๋ ๊ฒ ๋ ํ์ด์ฌ์ ๋ฌ๋ฏธ์ธ ๊ฑฐ ๊ฐ๋ค. ๊ทธ๋ฐ๋ฐ ๊ณ์ ์ด๋ค ํจ์๊ฐ ๋ฌด์จ ๊ธฐ๋ฅ์ด ์๊ณ , ์ด๋ฐ ๋ฐฉ์์ ์ฐ์ตํ์ง ์์ผ๋ฉด ๋ฐ๋ก๋ฐ๋ก ๋ ์ค๋ฅด์ง ์์ ๋งํ ์์ด๋์ด๋ค. ์ฐ์ตํด์ผ๊ฒ ๋ค......
'๐STUDY > ๐๋คํ (dafit.me)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[DF913] 06. 369 ๊ฒ์ ํ๋ก๊ทธ๋๋ฐ (0) 2020.02.10 [DF913] 05. ๋์๋ฌธ์ ๋ณํ (0) 2020.02.10 [DF913] 03. ๋ ๋ฒ์งธ๋ก ๊ฐ์ฅ ํฐ ์ (0) 2020.02.10 [DF913] 02. ๋ช ๋ น ์ธ์๋ก ์ซ์์ ์ดํฉ ๊ตฌํ๊ธฐ (0) 2020.02.10 [DF913] 01. ๋๊ฐ์ง ์ถ๋ ฅ ๋ฐฉ์ (0) 2020.02.10 ๋๊ธ