Python 강좌 : 제 24강 - 집 함수
집(zip) 함수
집(zip)
함수는 길이가 같은 반복 가능한 데이터(목록, 사전 등)를 하나로 묶어 반환하는 함수입니다.
주로, 형태가 다른 값들을 하나의 구조나 변수로 활용하기 위해 사용합니다.
집 함수는 결괏값 = map(범위 1, 범위 2, ...)
의 형태로 사용합니다.
목록(list)
, 집합(set)
, 사전(dict)
등을 묶어 결과를 반환합니다.
함수 생성
- 결과
- [(‘Y’, 1, ‘하나’), (‘U’, 2, ‘둘’), (‘N’, 3, ‘셋’)]
{(‘Y’, 1, ‘하나’), (‘N’, 3, ‘셋’), (‘U’, 2, ‘둘’)}
{‘Y’: 1, ‘U’: 2, ‘N’: 3}
zip(자료형1, 자료형2, ....)
을 사용하여 묶어
결과를 반환합니다.
집(zip) 함수는 list()
또는 set()
등의 구문을 추가하지 않으면 <zip object at 0x0506C940>
등의 iterator
형태로 출력됩니다.
dict()
의 경우 key
와 value
로 구성되어 있으므로 3개 이상은 묶을 수 없습니다.
반복문 적용
- 결과
- A 가
B 나
C 다
D 라
집(zip)
함수는 서로 다른 자료형을 하나로 묶을 수 있기 때문에, 두 종류 이상의 색인(index)
을 반복할 수 있습니다.
이 특성으로 인해, 다중 반복문(중첩 반복문)
을 사용하지 않고 하나의 반복문으로 간소화 할 수 있습니다.
언패킹(Unpacking) / 패킹(Packing)
- 결과
- [1, 2, 3] [4, 5, 6]
[(1, 4), (2, 5), (3, 6)]
[(1, 4), (2, 5), (3, 6)]
반복 가능한 객체에 별표(Asterisk, *)
를 함께 사용한다면, 언패킹되어 묶여있던 객체들이 나눠지게 됩니다.
즉, 2차원 리스트는 1차원 리스트 만큼 나눠서 반환하게 됩니다.
이 때, 집 함수를 사용하여 다시 패킹한다면 각 원소마다 묶기 때문에 여러 반복문을 구성하지 않아도 다시 패킹 할 수 있습니다.
zip(*n차원 객체)
는 zip(n-1차원 객체1, n-1차원 객체2, ...)
로 볼 수 있습니다.
그러므로, 반복 가능한 객체의 원소들을 대상으로 새로운 데이터를 구현할 수 있습니다.
댓글 남기기