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')]
이 예에서 list1
과 list2
은 요소별로 결합되어 튜플 리스트를 생성합니다.
길이가 다른 반복 가능한 항목 처리
입력 반복 가능 객체의 길이가 다른 경우, 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()
을 효과적으로 사용하는 방법을 이해하면 코드를 간소화하고 프로그래밍 기술을 향상시킬 수 있습니다.