๐map
iterableํ ๊ฐ์ฒด์ ๊ฐ ์์๋ฅผ ์ธ์๋ก ๋ฐ์ ํจ์๋ฅผ ์ ์ฉํ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํํ๋ ๋ด์ฅ ํจ์
map(function, iterable)function: ๊ฐ ์์์ ์ ์ฉํ ํจ์iterable: ํจ์๋ฅผ ์ ์ฉํ ๋ฐ์ดํฐ ์งํฉ- ๋ด๋ถ์ ์ผ๋ก C๋ก ๊ตฌํ๋์ด ์์ด ํ์ด์ฌ์ ๋ฐ๋ณต๋ฌธ๋ณด๋ค ๋น ๋ฆ
map๊ฐ์ฒด๋ก ๋ฐํ- lazy evaluation :
mapํจ์๊ฐ ํธ์ถ๋๋ฉดmap๊ฐ์ฒด๊ฐ ์์ฑ๋์ง๋ง ์ค์ ๋ก ํจ์๊ฐ ์คํ๋๋ ๊ฒ์map๊ฐ์ฒด๋ฅผ ์ด์ฉํ๋ ๋ค๋ฅธ ํจ์๊ฐ ํธ์ถ๋ ๋๊น์ง ๋ฏธ๋ค์ง
๐์ฌ์ฉ ์์
- ๋ฐ์ดํฐ๋ฅผ ๋ณํํ๋ ๊ฒฝ์ฐ
- ์ ๋ณด๋ฅผ ์ถ์ถํ๋ ๊ฒฝ์ฐ
- ๋ค๋์ ๋ฐ์ดํฐ์ ๋์ผํ ์ฐ์ฐ์ ์ ์ฉํ๋ ๊ฒฝ์ฐ
๐๋ ๋ฆฌ์คํธ์ ๊ฐ ์์๋ฅผ ๋ํ๊ธฐ
nums1 = [1, 2, 3]
nums2 = [4, 5, 6]
result = list(map(lambda x, y: x + y, nums1, nums2)) # [5, 7, 9]๐with lambda
mapํจ์๋ก ์ํ์ค์ ๋ชจ๋ ์์์ ํจ์๋ฅผ ์ ์ฉํ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํํ ๋lambdaํจ์๋ฅผ ์ฌ์ฉ
nums = [1, 2, 3, 4, 5]
result = list(map(lambda x: x * 2, nums)) # [2, 4, 6, 8, 10]๐2์ฐจ์ ๋ฐฐ์ด์์์ ์ต์๊ฐ/์ต๋๊ฐ ๊ตฌํ๊ธฐ
maximap = [[1, 2, 3, 4, 5], [1, 2, 3, 4, 6], [2, 3, 4, 5, 7], [3, 4, 5, 6, 9]]
max_val = max(map(max, maximap)) # 9- map(max, maximap) == [5, 6, 7 ,9]
- iterableํ ๊ฐ์ฒด
maximap๋ฆฌ์คํธ์ ๊ฐ๊ฐ์ ์์์ธ ๋ด๋ถ ๋ฆฌ์คํธ์ max ํจ์๋ฅผ ์ ์ฉ maxํจ์๋maximap์ ๊ฐ ๋ด๋ถ ๋ฆฌ์คํธ์์ ๊ฐ์ฅ ํฐ ๊ฐ์ ์ฐพ์ ์๋ก์ด iterator๋ฅผ ์์ฑ == [5, 6, 7, 9]
- max(โ) == 9
maxํจ์๋ ์๋ก์ด iterator([5, 6, 7,9])์์ ๊ฐ์ฅ ํฐ ๊ฐ์ ์ฐพ์ ๋ฐํ == 9
๐change type of element
iterable ๊ฐ์ฒด์ ๊ฐ ์์์ ๋ฐ์ดํฐ ํ์ ์ ๋ณํํ ๋ ์ฌ์ฉ
str_numbers = ["1", "2", "3", "4"]
int_numbers = list(map(int, str_numbers)) # [1, 2, 3, 4]