본문 바로가기
Data_engineering/Python

[Python] zip()

by kyhh1229 2023. 2. 26.

Python zip() 함수

Python의 내장 함수인 zip()은 둘 이상의 이터러블을 인자로 받아

각 이터러블에서 같은 인덱스에 위치한 요소들을 묶어서 튜플의 형태로 반환합니다.

반환된 튜플들은 이터레이터 객체로 반환되며, 남은 요소들은 무시됩니다.

 

예시 1

a = [1, 2, 3]
b = [4, 5, 6]
c = [7, 8, 9]

result = zip(a, b, c)

print(list(result))

위 코드의 출력 결과는 다음과 같습니다.

[(1, 4, 7), (2, 5, 8), (3, 6, 9)]

예시 2

a = [1, 2, 3]
b = ['a', 'b', 'c']

result = zip(a, b)

print(list(result))

위 코드의 출력 결과는 다음과 같습니다.

[(1, 'a'), (2, 'b'), (3, 'c')]

 

참고사항

  • zip() 함수의 인자로 전달된 이터러블의 길이가 다르면, 가장 짧은 이터러블의 길이에 맞춰서 묶음 처리됩니다.
  • 반환된 이터레이터 객체는 한 번만 사용할 수 있습니다.
  • 이터레이터 객체를 리스트로 변환하거나, for문을 이용하여 요소를 하나씩 꺼내서 사용할 수 있습니다.

 

Python zip() 과 같은 np.column_stack

np.column_stack() 함수는 zip() 함수와 유사하게,

둘 이상의 1차원 배열을 인자로 받아 각 배열에서 같은 인덱스에 위치한 요소들을 묶어서 2차원 배열의 열로 만듭니다.

아래는 zip() 함수와 np.column_stack() 함수의 결과가 같은 예시 코드입니다.

import numpy as np

a = [1, 2, 3]
b = [4, 5, 6]
c = [7, 8, 9]

result1 = zip(a, b, c)

result2 = np.column_stack((a, b, c))

print(list(result1))
print(result2)

위 코드의 출력 결과는 다음과 같습니다.

[(1, 4, 7), (2, 5, 8), (3, 6, 9)]

[[1 4 7]
 [2 5 8]
 [3 6 9]]

np.column_stack() 함수는 hstack() 함수와도 유사하지만,

두 함수의 차이점은 전달된 인자가 1차원 배열일 때, column_stack() 함수는 열 방향으로 합치는 데에 초점을 둔다는 것입니다.

np.column_stack() 함수는 1차원 배열을 열 단위로 합쳐서 만든 2차원 배열을 반환합니다.

'Data_engineering > Python' 카테고리의 다른 글

[Python] 리스트_튜플_세트_딕셔너리  (0) 2023.02.26
[Python] 변수와 문자열  (0) 2023.02.26
[Python] 사칙연산  (0) 2023.02.26

댓글