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 |
댓글