1) ๋ด์ฅ ํจ์
(1) zip (iterable, iterable, ...)
- zip() ํจ์๋ ์ฌ๋ฌ ๊ฐ์ ์ํ ๊ฐ๋ฅํ iterable ๊ฐ์ฒด๋ฅผ ์ธ์๋ก ๋ฐ๊ณ , ๊ฐ ๊ฐ์ฒด๊ฐ ๋ด๊ณ ์๋ ์์๋ฅผ ํํ์ ํํ๋ก ์ฐจ๋ก๋ก ์ ๊ทผํ ์ ์๋ ๋ฐ๋ณต์ (iterator)๋ฅผ ๋ฐํํ๋ค.
[์์]
numbers = [1, 2, 3]
letters = [“A”, “B”, “C”]
for pair in zip(numbers, letters):
print(pair)
[๊ฒฐ๊ณผ]
>>> (1, 'A')
>>> (2, 'B')
>>> (3, 'C')
→ numbers, letters ๋ฆฌ์คํธ์ ๊ฐ ์์๋ฅผ ๊บผ๋ด์ด ํํ์ ํํ๋ก ๋ฐํ
[๋ณ๋ ฌ ์ฒ๋ฆฌ]
for number, upper, lower in zip("12345", "ABCDE", "abcde"):
print(number, upper, lower)
→ ์ด์ฒ๋ผ ์ฌ๋ฌ ๊ทธ๋ฃน์ ๋ฐ์ดํฐ๋ฅผ ๋ฃจํ๋ฅผ ํ ๋ฒ๋ง ๋๋ฉด์ ๋ณ๋ ฌ๋ก ์ฒ๋ฆฌํ ์ ์์ผ๋ฉฐ, zip() ํจ์๋ ๊ฐ๋ณ์ธ์๋ฅผ ๋ฐ๊ธฐ ๋๋ฌธ์ 2๊ฐ ์ด์์ ์ธ์๋ฅผ ๋๊ธธ ์ ์๋ค.
→ ํํฐ์ ์์๋ฅผ 3๊ฐ์ ๋ณ์์ ํ ๋นํ๊ธฐ ์ํด์ for ๋ฌธ์์ ์ธ์ ํ๊ธฐ (UnPacking)์ ํ์์ผ๋ฉฐ ์ด์ ๋น์ทํ ๊ฒฝ์ฐ๋ก๋ enumerate() ํจ์์ด๋ค
[Unzip]
numbers = (1, 2, 3)
letters = ("A", "B", "C")
pairs = list(zip(numbers, letters))
print(pairs)
>>> [(1, 'A'), (2, 'B'), (3, 'C')]
numbers, letters = zip(*pairs)
→ zip() ํจ์๋ก ์ฎ์ด ๋์ ๋ฐ์ดํฐ๋ฅผ ๋ค์ ํด์ฒด (Unzip)ํ๊ณ ์ถ์ ๋๋ ์์ฒ๋ผ zip() ํจ์๋ฅผ ์ด์ฉํ์ฌ ํ ์ ์๋ค.
[์ฌ์ ๋ณํ]
keys = [1, 2, 3]
values = [“A”, “B”, “C”]
dict(zip(keys, values)) // {1: 'A', 2: 'B', 3: 'C'}
→ dict() ํจ์์ ํค์ ๊ฐ์ผ๋ก ์ด๋ฃจ์ด์ง ํํ์ ๋๊ธฐ๋ฉด ์ฌ์ ์ด ์์ฑ๋๋ ์๋ฆฌ๋ฅผ ์ด์ฉํ ๊ฒ์ด๋ค!
[์ฃผ์ ์ฌํญ]
numbers = ["1", "2", "3"]
letters = ["A"]
list(zip(numbers, letters)) // [('1', 'A')]
→ zip() ํจ์๋ก ๋๊ธฐ๋ ์ธ์์ ๊ธธ์ด๊ฐ ๋ค๋ฅผ ๋๋ ์ฃผ์ํด์ผ ํ๋ฉฐ, ๊ฐ์ฅ ์งง์ ์ธ์๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ฐ์ดํฐ๊ฐ ์ฎ์ด๊ณ ๋๋จธ์ง๋ ๋ฒ๋ ค์ง๊ธฐ ๋๋ฌธ์ด๋ค.
๋ฐ์ํ
'๐ง Programming > Python' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Python - Return + and/or ์ฐ์ฐ์ ํ์ฉ (0) | 2023.08.14 |
---|---|
Python - ๋ด์ฅํจ์ (any, all) (0) | 2023.08.14 |
Python - ๋ด์ฅํจ์ (map, filter) (0) | 2023.08.14 |
Python - ํจ์ (Function) ์ ์ธ (0) | 2023.08.08 |
Python - ํ ์ค ๋ณตํฉ๋ฌธ (if, for) (0) | 2023.08.04 |