zip 객체는 반복자(iterator)라고 할 수 있으며, 반복자란 시퀀스를 통해 반복할 수 있는 객체를 말한다. 반복자는 여러 부분에서 리스트와 비슷하지만, 리스트와 달리 인덱스를 사용해 반복자에서 원소를 선택할 수 없다.
리스트 연산자와 메서드를 사용하고 싶다면 zip 객체를 사용해 리스트를 만들어야 한다.
>>> list(zip(s, t))
[('a', 0), ('b', 1), ('c', 2)]
결과는 튜플들의 리스트가 된다. 이 예제에서는 각 튜플에 문자열에서 가져온 문자 하나와 리스트에서 이에 대응하는 원소 하나가 담겨 있다.
시퀀스들의 길이가 다르다면 길이가 짧은 시퀀스의 길이를 갖는 결과가 된다.
>>> list(zip('Anne', 'Elk'))
[('A', 'E'), ('n', 'l'), ('n', 'k')]
for 루프에 튜플 할당을 사용하면 튜플들의 리스트로 순회할 수 있다.
t = [('a', 0), ('b', 1), ('c', 2)]
for letter, number in t:
print(number, letter)