Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Python에서 딕셔너리와 리스트를 zip() 함수로 묶는 방법

Python에서 딕셔너리와 리스트를 zip()으로 묶기

Python의 내장 함수인 zip()을 활용하면 딕셔너리의 키-값 쌍과 리스트의 각 요소를 하나씩 짝지어 새로운 이터레이터를 만들 수 있습니다.

zip()은 여러 이터러블(iterable) 객체를 인자로 받아, 각 객체에서 같은 위치에 있는 요소들을 튜플 형태로 묶어줍니다. 딕셔너리에 items() 메서드를 적용하면 키-값 쌍이 튜플로 반환되므로, 이를 리스트와 함께 zip()에 전달하면 원하는 결과를 얻을 수 있습니다.

기본 사용 예시

>>> dictionary = {'A': 1, 'B': 2, 'C': 3}
>>> num_list = [1, 2, 3]
>>> zipped = zip(dictionary.items(), num_list)
>>> zipped
<zip object at 0x000000886641B9C8>

zip()의 반환값은 zip 객체(이터레이터)이기 때문에 그 자체로는 내부 내용을 바로 확인할 수 없습니다. 이 객체를 list()로 변환하면 아래와 같은 출력 결과를 볼 수 있습니다.

>>> list(zipped)
[(('A', 1), 1), (('B', 2), 2), (('C', 3), 3)]

결과 해석

출력 결과를 살펴보면, 딕셔너리의 각 키-값 쌍(('A', 1), ('B', 2), ('C', 3))이 리스트의 동일한 인덱스에 있는 요소와 순서대로 짝지어진 것을 확인할 수 있습니다. 즉, '키-값 쌍 튜플'과 '리스트 요소'로 구성된 튜플들의 리스트가 최종적으로 생성됩니다.

알아두면 좋은 점

  • zip 객체는 한 번만 순회할 수 있는 이터레이터입니다. 이미 소진된 zip 객체를 다시 list()로 변환하면 빈 리스트가 반환되므로 주의해야 합니다.
  • 묶으려는 두 이터러블의 길이가 서로 다르면, 더 짧은 쪽의 길이에 맞춰서 묶입니다.
  • Python 3.10부터는 strict=True 옵션을 사용하여 길이가 일치하지 않을 경우 오류를 발생시킬 수도 있습니다.