Python zip 모듈

Minsang Yu·2023년 6월 6일
0

zip 모듈

파이썬의 zip 모듈은 여러개의 이터러블 객체를 동시에 순회하면서 각 개체의 원소들을 조합하여 튜플 형태로 반환하는 기능

이 모듈은 일반적으로 데이터를 묶거나 두개 이상의 리스트를 병렬로 처리할 때 사용됩니다.

# zip 함수의 모듈
zip(*iterables)

여기서 iterables 는 한개 이상의 이터러블 객체를 전달할 수 있는 인수입니다.

zip 함수는 iterabels 에 전달된 객체들을 동시에 순회하며, 각 객체에서 해당 위치의 원소들을 묶어 튜플로 반환한다.

반환된 튜플은 이터레이션중 가장 짧은 길이의 객체에 맞추어 생성됩니다.

zip 함수 예제

numbers = [1, 2, 3]
letters = ['a', 'b', 'c']
result = zip(numbers, letters)

for item in result:
    print(item)

위의 예시에서 zip(numbers, letters)numbersletters라는 두 개의 리스트를 병렬로 처리하기 위한 이터레이터를 반환합니다. for 루프에서 result를 순회하면, 출력은 다음과 같이 됩니다:

>>>
(1, 'a')
(2, 'b')
(3, 'c')

numbersletters의 길이가 동일하므로 모든 원소들이 정확히 매칭되어 튜플로 반환되었습니다.

하지만, zip 함수는 매개변수로 전달된 객체들의 길이가 다를 경우, 가장 짧은 길이에 맞추어 반환합니다. 예를 들어, letters 리스트를 다음과 같이 수정하면:

numbers = [1, 2, 3]
letters = ['a', 'b']
result = zip(numbers, letters)

for item in result:
    print(item)

>>>
# 길이가 더 짧은 iterable 객체에 매핑된다.
(1, 'a')
(2, 'b')

**zip 함수를 사용하여 여러 개의 리스트를 조합하고, 그 결과를 활용**

names = ['Alice', 'Bob', 'Charlie']
ages = [25, 30, 35]
scores = [95, 85, 90]

for name, age, score in zip(names, ages, scores):
    print(f"{name} is {age} years old and scored {score} on the test.")

>>>
Alice is 25 years old and scored 95 on the test.
Bob is 30 years old and scored 85 on the test.
Charlie is 35 years old and scored 90 on the test.

위의 예제에서는 names, ages, scores라는 세 개의 리스트가 있습니다. zip 함수를 사용하여 이 세 리스트를 병렬로 처리하고, 각각의 원소를 name, age, score 변수에 할당합니다.

for 루프에서 zip(names, ages, scores)를 순회하면, 각각의 리스트에서 동일한 인덱스의 원소들이 묶여 튜플로 반환됩니다. 그리고 name, age, score 변수에 순차적으로 할당되므로, 이를 활용하여 각각의 정보를 출력할 수 있습니다.

names, ages, scores 리스트들의 길이가 동일하므로 모든 원소들이 정확히 매칭되어 출력됩니다.

이 예제를 통해 zip 함수를 사용하여 여러 개의 리스트를 병렬로 처리하고, 각각의 원소들을 활용하는 방법을 이해하실 수 있을 것입니다.

profile
Jr. DataEngineer

0개의 댓글