" 파이썬의 마법 도구, zip() 함수 완벽 정리: 기초부터 행렬 전치까지 " 파이썬에서 여러 개의 리스트를 동시에 다루거나, 행렬의 모양을 바꿀 때 zip()만큼 유용한 함수는 없습니다. 오늘은 이 함수의 기초 사용법부터 고급 테크닉인 '행렬 전치(Transpose)'까지 핵심 코드 위주로 살펴보겠습니다.
zip() 함수란?
names = ["Alice", "Bob", "Charlie"]
scores = [85, 92, 78]
# 두 리스트를 하나로 묶기
for name, score in zip(names, scores):
print(f"{name}: {score}")
# 결과:
# Alice: 85
# Bob: 92
# Charlie: 78
zip():
여러 개의 순회 가능한(iterable) 객체를 인자로 받아,
각 객체의 동일한 인덱스에 있는 요소들을 튜플(tuple) 형태로 묶어주는 이터레이터를 반환.
예시) zip(names, scores)
names와 scores의 인덱스를 앞에서부터 하나씩 순회하며 동일한 자리의 값을 묶음
("Alice", 85), ...
주의점 : 길이가 다른 리스트를 묶을 때
zip()은 기본적으로 가장 짧은 리스트의 길이에 맞춰 동작. 나머지 데이터는 버려짐
대안 : itertools.zip_longest ; 부족한 부분은 fillvalue로 채울 수 있음