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

파이썬에서 리스트 컴프리헨션으로 딕셔너리 만드는 방법

zip() 함수란?

파이썬의 내장 함수인 zip()은 두 개의 리스트에서 같은 인덱스에 위치한 요소들을 하나의 튜플로 묶어 반환합니다. 만약 두 리스트가 각각 키(key)와 값(value) 역할을 한다면, 이 zip 객체를 다른 내장 함수인 dict()와 함께 사용하여 손쉽게 딕셔너리 객체를 생성할 수 있습니다.

dict() 함수로 zip 객체 변환하기

아래 예제에서는 문자열 리스트 L1을 키로, 숫자 리스트 L2를 값으로 사용하여 딕셔너리를 만듭니다.

>>> L1=['a','b','c','d']
>>> L2=[1,2,3,4]
>>> d1=dict(zip(L1,L2))
>>> d1
{'a': 1, 'b': 2, 'c': 3, 'd': 4}

딕셔너리 컴프리헨션 활용하기

파이썬 3.x 버전부터는 딕셔너리 컴프리헨션(dictionary comprehension) 문법도 지원합니다. zip 객체를 순회하면서 키와 값을 직접 지정하는 방식으로, 더 파이썬다운(Pythonic) 코드를 작성할 수 있습니다.

>>> L1=['a','b','c','d']
>>> L2=[1,2,3,4]
>>> d={k:v for (k,v) in zip(L1,L2)}
>>> d
{'a': 1, 'b': 2, 'c': 3, 'd': 4}

참고 사항

두 리스트의 길이가 서로 다르면 zip()은 더 짧은 리스트 길이에 맞춰 나머지 요소들을 무시하므로, 데이터 손실 여부를 항상 확인하는 것이 좋습니다. 또한 딕셔너리 컴프리헨션 안에서 조건문을 추가하면 특정 조건을 만족하는 항목만 골라 딕셔너리를 구성할 수도 있습니다.