Python zip() 튜토리얼¶
0. 사전 지식¶
1. 한 줄 정의¶
zip()은
zip은 여러
iterable에서 같은 iteration 단계에서 생성된 값들을 묶어tuple로 반환하는iterator생성 함수.
중요한 점:
- 각
iterable(주로list객체)에서 차례대로 꺼낸 값(item) 을tuple로 묶어냄. - 결과는
iterator.
2. 가장 기본 예제¶
결과:
위의 예에서 zip은 다음처럼 동작:
a에서1을 꺼냄b에서'a'를 꺼냄(1, 'a')로 묶음- 다음 값들도 같은 방식 반복
즉, 같은 순서(iteration)에서 나온 값들이 묶임.
3. 길이가 다른 iterable 객체들이 인자인 경우¶
결과:
zip은
- 인자로 주어진 여러
iterable중 - 하나라도 더 이상 꺼낼 값이 없으면 멈춤.
- 가장 짧은
iterable길이에 맞춰서 종료됨.
4. for문에서 가장 많이 사용¶
names = ["Alice", "Bob", "Charlie"]
scores = [90, 85, 100]
for name, score in zip(names, scores):
print(name, score)
출력:
* zip이(name, score) 튜플을 하나씩 만듦 * for문이 그것을 풀어서 사용 5. index 를 사용하는 것이 아님.¶
zip은
- 각
iterable에서 차례대로 꺼낸 값 을 묶음 - index가 없는
generator에서도 잘 동작
결과:
6. zip은 iterator 임¶
결과:
- 한번 전체 item에 대한 iteration이 수행되고 나면
iterator객체는 비어짐. - 여러 차례 iteration을 할 수 있는
iterable객체와 다른 점. zip()의 반환값은iterator객체임.
7. 딕셔너리 만들기¶
결과:
zip()을 활용하여dict객체를 만들 수 있음.
8. unpacking과 같이 사용하는 예¶
결과:
*는 묶인 튜플들을 다시 풀어주는 역할(unpacking)을 수행.
asterisk 를 통해 packing과 unpacking이 이루어지는 데 이에 대해 자세한 건 다음을 참고:
요약¶
- zip은 여러
iterable에서 같은 순서로 꺼낸 값들을 묶음 - 꺼내진 값들을
tuple로 묶음. - 가장 짧은
iterable기준으로 멈춘다 iterator객체를 반환한다