๋๊ฐ์ ๋ฐ์ดํฐ๊ฐ ์์ผ๋ฉด ์๋ก ๋ง๋ฌผ๋ฆฌ๊ฒ ๋ค๋ฅธ ๋ฐ์ดํฐ๋ฅผ ๋ง๋ค ์ ์๋ ๋ฐฉ๋ฒ์ ์์๊น?
zip ํจ์๋ฅผ ์ด์ฉํ๋ฉด ๋๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ๋ง๋ฌผ๋ฆฌ๊ฒํ ์๋ก์ด ๋ฐ์ดํฐ๋ฅผ ๋ง๋ค์ด ๋ผ ์ ์๋ค.
a = [0,1,2,3,4,5]
b = ['a','b','c','d','e','f']
print(list(zip(a,b)))
# ์ถ๋ ฅ : [(0, 'a'), (1, 'b'), (2, 'c'), (3, 'd'), (4, 'e'), (5, 'f')]
๋ง์ฝ ๋ฆฌ์คํธ์ ํฌ๊ธฐ(๊ธธ์ด)๊ฐ ๋ค๋ฅด๋ฉด ์ด๋ป๊ฒ ๋ ๊น?
a = [0,1,2,3,4,5]
b = ['a','b','c']
print(list(zip(a,b)))
# ์ถ๋ ฅ : [(0, 'a'), (1, 'b'), (2, 'c')]
์์ ๊ฐ์ด ์ต์์ ๊ธธ์ด์ ๋ง์ถฐ์ ์๋ก์ด ๋ฐ์ดํฐ๊ฐ ํ์ฑ๋๋ค. ์ค์ ๋ก ai, ๋น ๋ฐ์ดํฐ, ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ฑ๋ฑ ๋ง์ ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฃจ๋ ๊ฐ๋ฐ์๋ค์ zipํจ์๋ฅผ ์์ฃผ ๋ค๋ฃจ์ด ๋ณด์์ ๊ฒ ์ด๋ค. ์ค์ ๋ก ์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ๋ฅผ ์ํํ๋ค๋ณด๋ฉด ์ข ์ข ์ฌ์ฉ๋๋ค.
์ด์ zip ํจ์๋ฅผ ์ด๋ป๊ฒ ์ฌ์ฉํ๋์ง ์์๋ฅผ ๋ณด์
- zip() ํจ์์ ์์ฉ
1. 2์ฐจ์ ๋ฆฌ์คํธ(ํ๋ ฌ)์ ํ๋ถ๋ถ๋ง ์ถ์ถํด์ ์๋ก์ด ๋ฐ์ดํฐ ์์ฑ
# input :
# 0 5 4 5 4 5 4
# 4 0 5 1 2 3 4
# 9 8 0 1 2 3 1
# 9 9 9 0 9 9 9
# 1 1 1 1 0 1 1
# 8 7 6 5 4 0 3
# 9 1 9 1 9 1 0
import sys
n = 7
arr = [list(map(int,sys.stdin.readline().split())) for _ in range(n)]
print(list(zip(*arr)))
# *arr : [0, 5, 4, 5, 4, 5, 4] [4, 0, 5, 1, 2, 3, 4] ...... [9, 1, 9, 1, 9, 1, 0]
์ถ๋ ฅ ํด๋ณด๋ฉด ์ด๋ป๊ฒ ๋ ๊น? ํ๋ฒ ๋๋ ค๋ณด๊ธธ ์ถ์ฒํ๋ค.
์ฐธ๊ณ ๋ก * ๋ asterisk ๋ผ๊ณ ํด์ ๋ฆฌ์คํธ๋ฅผ unpack ํด์ฃผ๋ ๊ธฐ๋ฅ์ ํ๋ค. (๋ ๋ค์ํ ๊ธฐ๋ฅ์ด ์์ง๋ง ์ฌ๊ธฐ๊น์ง๋ง ์ค๋ช ํ๊ฒ ๋ค.)
ex) *[[1,2],[3,4],[5,6]] ํ๊ฒ ๋๋ฉด [1,2]์ [3,4]์ [5,6]์ผ๋ก unpack ๋ฉ๋๋ค.
์ถ๋ ฅํ๊ฒ ๋๋ฉด ์๋์ ๊ฐ์ด ๋์จ๋ค.
# ์ถ๋ ฅ :
# [(0, 4, 9, 9, 1, 8, 9), (5, 0, 8, 9, 1, 7, 1), (4, 5, 0, 9, 1, 6, 9), (5, 1, 1, 0, 1, 5, 1), (4, 2, 2, 9, 0, 4, 9), (5, 3, 3, 9, 1, 0, 1), (4, 4, 1, 9, 1, 3, 0)]
2. unzip
๋ง๋ฌผ๋ฆฌ๊ฒ ๋ง๋ค์ด๋ ๋ฐ์ดํฐ๋ฅผ ์์๋ณต๊ตฌํ๋ ๋ฐฉ๋ฒ์ด๋ค.
a = [0,1,2,3,4,5]
b = ['a','b','c']
c = list(zip(a,b))
print(c)
# ์ถ๋ ฅ : [(0, 'a'), (1, 'b'), (2, 'c')]
# unzip
print(list(zip(*c)))
# ์ถ๋ ฅ : [(0, 1, 2), ('a', 'b', 'c')]
๋ง๋ฌผ๋ฆฌ๊ฒ ๋ง๋ค์ด๋ ๋ฐ์ดํฐ๋ฅผ ์์๋ณต๊ตฌํ๋ ๋ฐฉ๋ฒ์ด๋ค.
'์ธ์ด (C, Python)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Python] ๊ธฐ๋ณธ ๋ฌธ๋ฒ์ ํต์ฌ, ์์ฝ๋ณธ (0) | 2024.01.16 |
---|---|
[Python] ๋ฌธ์์ด ๊ด๋ จ ํจ์ ๋ฐ ์ ๋ณด (0) | 2022.07.23 |
[python] eval() ๋ด์ฅํจ์ (๋ฌธ์์ด ์์ ๊ณ์ฐ) (0) | 2022.07.05 |
[python] set(์งํฉ)๊ณผ ๊ด๋ จ๋ ํจ์ ๋ฐ ์ (0) | 2022.06.28 |
[python] ์์ด๊ณผ ์กฐํฉ - ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ฌ์ฉ (0) | 2022.04.13 |
๋๊ธ