로딩
요청 처리 중입니다...

파이썬 enumerate()와 zip() 실전 활용 완전 정리 | 리스트 컴프리헨션부터 Unzip까지

 파이썬 enumerate()와 zip() 실전 활용 완전 정리 | 리스트 컴프리헨션부터 Unzip까지

zip(*data)는 여러 시퀀스를 하나로 묶지만, 묶인 데이터를 열(Column) 기준으로 다시 분리하는 핵심 도구다. 결과는 항상 튜플이며 필요하면 list로 변환한다. 예시로 ("철수",90),("영희",80),("민수",95)처럼 행으로 구성된 데이터를 열 단위로 모으면 이름의 묶음과 점수의 묶음을 얻는다. 이때 행을 열로 바꾸는 과정은 행렬의 전치(transpose)와도 연결된다.

다양한 활용으로는 먼저 이름들, 점수들, 도시들처럼 분리된 3개 이상 변수에 대한 할당이 가능하다. 반환형은 기본적으로 튜플의 리스트이며 필요하면 map(list, zip(*data))로 리스트로 변환한다. 또한 가변 언패킹을 이용해 names, scores, *others = zip(*data)처럼 특정 열은 먼저 받고 남은 열은 나중에 처리하는 방식도 가능하다. 이와 함께 행렬 전치의 기본 기법으로 list(zip(*matrix))가 자주 사용된다.

주의점으로는 빈 데이터일 때 ValueError가 발생할 수 있으며, 변수 개수와 열 수는 반드시 일치해야 한다. zip 객체는 한 번만 소진되므로 재생성이 필요하고, tuple은 수정 불가이므로 필요 시 list로 변환하는 것이 일반적이다.

핵심 요약으로, 역언패킹(Unzip)은 묶인 데이터를 다시 분리하는 기본 문법으로 a, b = zip(*data)의 형태를 띈다. 역할은 요소를 하나씩 펼쳐 전달하는 것이며, 동작 원리는 첫 번째끼리, 두 번째끼리 모으는 방식이다. 반환형은 tuple이며 필요하면 list()나 map(list, zip(*data))로 변환한다. 대표 활용으로는 CSV 처리, 행렬 전치, 머신러닝 데이터 전처리가 꼽힌다. 파이썬 컴프리헨션과 중첩 반복문에서도 enumerate()와 zip()의 활용은 기본이 되며, 필요에 따라 원하는 부분을 빠르게 추출하는 데 도움이 된다.

# enumerate # 파이썬예제 # 파이썬실전 # 파이썬반복문 # 파이썬zip # 파이썬enumerate # 파이썬 # 코딩독학 # 개발공부 # zip # Unzip # PythonTips # Python # 프로그래밍