Python의 zip() 함수를 사용하여 데이터 결합하는 방법

파이썬의 zip() 함수는 반복 가능한 것(예: 리스트나 튜플)을 단일 반복 가능한 것으로 결합하는 강력한 도구입니다. 이 함수는 여러 시퀀스의 요소를 페어링해야 할 때 특히 유용할 수 있습니다. 이 글에서는 zip()를 사용하여 데이터를 효율적으로 결합하는 방법을 살펴보겠습니다.

zip() 함수는 무엇인가요?

zip() 함수는 여러 반복 가능 항목을 인수로 받고 튜플 반복자를 반환합니다. 각 튜플에는 입력 반복 가능 항목의 해당 위치의 요소가 포함됩니다. 이는 병렬 시퀀스의 데이터를 결합하는 데 유용합니다.

기본 사용법

다음은 zip()을 사용하여 두 개의 목록을 결합하는 방법에 대한 간단한 예입니다.

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

zipped = zip(list1, list2)
print(list(zipped))

산출:

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

이 예에서 list1list2은 요소별로 결합되어 튜플 리스트를 생성합니다.

길이가 다른 반복 가능한 항목 처리

입력 반복 가능 객체의 길이가 다른 경우, zip()은 가장 짧은 반복 가능 객체가 고갈되면 튜플 생성을 중단합니다. 다음은 예입니다.

list1 = [1, 2, 3, 4]
list2 = ['a', 'b', 'c']

zipped = zip(list1, list2)
print(list(zipped))

산출:

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

'4'을 포함하는 튜플은 포함되지 않습니다. 왜냐하면 list2에 해당 요소가 없기 때문입니다.

데이터 압축 해제

zip()을 사용하여 튜플 목록을 unzip할 수도 있습니다. 여기에는 결합된 데이터를 개별 목록으로 다시 분리하는 것이 포함됩니다.

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

list1, list2 = zip(*zipped)
print(list1)
print(list2)

산출:

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

여기서 * 연산자는 튜플 목록을 압축 해제하는 데 사용되고, zip()은 해당 요소를 다시 개별 튜플로 그룹화하는 데 사용됩니다.

실제 응용 프로그램

zip() 함수는 다음과 같은 실제 시나리오에서 자주 사용됩니다.

  • 이름과 나이 등 병렬 목록의 데이터를 결합합니다.
  • 두 개의 목록에서 사전을 만드는데, 한 목록에는 키가 있고 다른 목록에는 값이 있습니다.
  • 루프에서 여러 목록을 병렬로 반복합니다.

예: 사전 만들기

다음은 zip()을 사용하여 두 개의 리스트에서 사전을 만드는 예입니다.

keys = ['name', 'age', 'city']
values = ['Alice', 30, 'New York']

dictionary = dict(zip(keys, values))
print(dictionary)

산출:

{'name': 'Alice', 'age': 30, 'city': 'New York'}

이 예에서 zip()은 각 키와 해당 값을 쌍으로 묶고, dict() 함수는 이 쌍을 사전으로 변환합니다.

결론

zip() 함수는 Python에서 데이터를 결합하고 관리하는 데 유용한 도구입니다. 목록을 병합하든, 데이터를 압축 해제하든, 사전을 만들든, zip()을 효과적으로 사용하는 방법을 이해하면 코드를 간소화하고 프로그래밍 기술을 향상시킬 수 있습니다.