여러 개의 순회 가능한(iterable) 객체를 인자로 받고, 각 객체가 담고 있는 원소를 튜플의 형태로 차례로 접근할 수 있는 반복자(iterator)를 반환
코테에서 언제 쓰이느냐 : 두 개의 배열이 주어지고, 그 배열의 연관성이 있을때(둘이 엮어서 한번에 for문을 돌리고 싶을때)
>>> numbers = [1, 2, 3]
>>> letters = ["A", "B", "C"]
>>> for pair in zip(numbers, letters):
... print(pair)
...
(1, 'A')
(2, 'B')
(3, 'C')
zip(*)
Unpacking보통은 다음과 같이 2중 for 문을 이용해 리스트의 row와 column을 뒤집습니다.
new_list = [[], [], []]
for i in range(len(mylist)):
for j in range(len(mylist[i])):
new_list[i].append(mylist[j][i])
파이썬의 zip과 unpacking 을 이용하면 코드 한 줄로 리스트를 뒤집을 수 있습니다.
mylist = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
new_list = list(map(list, zip(*mylist)))
실행결과
[[1, 4, 7], [2, 5, 8], [3, 6, 9]]