① zip은 transpose와 같은 역할을 합니다. 예를 들어 다음과 같습니다.
▲ 그림 12-17 zip 예제
list_data = [[1,2,3],[4,5,6]] ------ 2×3 형태의 행렬 생성 list(zip(*list_data)) ------ zip 함수와 *를 함께 사용해야 합니다.
zip을 적용한 결과는 다음과 같습니다.
[(1, 4), (2, 5), (3, 6)]
transpose를 적용한 결과와 동일한 것을 확인할 수 있습니다. 따라서 예제는 transitions 데이터의 행과 열을 바꾸겠다는 의미입니다.
그럼 이제 zip에서 사용했던 애스터리스크(*)에 대해 알아보겠습니다. 애스터리스크(*)는 다음과 같은 목적을 위해 사용합니다.
1. 함수 내에서 튜플4을 의미합니다.
def tuple_data(*args): print(type(args)) print(args) tuple_data(1,2,3,4)
출력 결과는 다음과 같습니다.
<class 'tuple'> (1, 2, 3, 4)