๐[Python] ํ์ด์ฌ map์ด๋?
Python map ํจ์๊ฐ ๋ญ๊น?
map
์ ๋ฆฌ์คํธ์ ์์๋ฅผ ์ง์ ๋ ํจ์๋ก ์ฒ๋ฆฌํด์ฃผ๋ ํจ์๋ค.
map์ ์๋ณธ ๋ฆฌ์คํธ๋ฅผ ๋ณ๊ฒฝํ์ง ์๊ณ ์ ๋ฆฌ์คํธ๋ฅผ ์์ฑํ๋ค.
map ๊ตฌ์กฐ์ ์์
map(function, iterable)
map
ํจ์์ ๊ธฐ๋ณธ ๊ตฌ์กฐ๋ ์์ ๊ฐ๋ค.
- map์ ๋ฆฌ์คํธ, ํํ์ ์ ์ฉํด๋ณด์.
- list(map(function, list))
- tuple(map(function, tuple))
[์ ์ฉ์์ 1]
a = [1, 2, 3, 4, 5]
for i in range(len(a)):
a[i] = int(a[i])
...
print(a)
[์ ์ฉ์์ 1-๊ฒฐ๊ณผ]
> [1, 2, 3, 4]
[์ ์ฉ์์ 2]
a = [1, 2, 3, 4, 5]
a = list(map(int, a))
print(a)
[์ ์ฉ์์ 2- ๊ฒฐ๊ณผ]
> [1, 2, 3, 4]
๋ฆฌ์คํธ๋ฅผ mapํจ์๋ฅผ ์ฌ์ฉํด ํ ์ค๋ก ํํํ ์ ์๋ค.
[๊ทธ๋ฆผ ์ค๋ช
]
map์ ๋ฆฌ์คํธ์๋ง ์ฌ์ฉ๊ฐ๋ฅํ ๊ฒ์ด ์๋!
์ฌ์ค map์ ๋ฆฌ์คํธ ๋ฟ๋ง ์๋๋ผ ๋ชจ๋ ๋ฐ๋ณต ๊ฐ๋ฅํ ๊ฐ์ฒด๋ฅผ ๋ฃ์ ์ ์๋ค.
[์์ ]
a = list(map(str, range(10)))
print(a)
['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']
input()์ map์ ์ฌ์ฉํ ์ ์๋ค!
input()์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์
๋ ฅ๋ฐ๊ณ , split()์ผ๋ก ์ฌ๋ฌ ๊ฐ๋ฅผ ์
๋ ฅ๋ฐ์ ์ ์์๋ค.
input().split()์ ๊ฒฐ๊ณผ๋ฅผ ์ ์, ์ค์๋ก ๋ณํํ ๋๋ map์ ์ฌ์ฉํด ๋ณํํ ์ ์๋ค.
์ด๋ป๊ฒ ๊ฐ๋ฅํ ๊น?
input().split()์ ๊ฒฐ๊ณผ๊ฐ ๋ฌธ์์ด ๋ฆฌ์คํธ
๋ผ์ ๊ฐ๋ฅํ๋ค.
[์์ 1]
a = map(int, input().split()) # ์
๋ ฅ: 10 20
print(a) # <map object at 0x03DFB0D0>
print(list(a)) # [10, 20]
์ฌ์ค map์ด ๋ฐํํ๋ ๋งต ๊ฐ์ฒด๋ ์ดํฐ๋ ์ดํฐ๋ผ์ ๋ณ์ ์ฌ๋ฌ ๊ฐ์ ์ ์ฅํ๋ ์ธํจํน(unpacking)
์ด ๊ฐ๋ฅํ๋ค!
์ธํจํน์ด ๋ญ๋ฐ?
ํ ๋ณ์์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ๊ฐ์ ๋ณ์๋ก ๋ฐํํ๋ ๊ฒ โ ๋ฌถ์ธ ๊ฑธ ํผ๋ค!
[์์ 2]
x = input().split()
m = map(int, x)
a, b = m # ๋งต ๊ฐ์ฒด๋ ๋ณ์ ์ฌ๋ฌ ๊ฐ ์ ์ฅํ ์ ์์
์ฐธ๊ณ ์๋ฃ
https://dojang.io/mod/page/view.php?id=2286
https://roi-data.com/entry/%ED%8C%8C%EC%9D%B4%EC%8D%AC-%ED%8C%A8%ED%82%B9-packing-%EC%96%B8%ED%8C%A8%ED%82%B9-unpacking
๋๊ธ๋จ๊ธฐ๊ธฐ