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

Python 튜플을 딕셔너리로 변환하는 방법

Python에서 튜플을 딕셔너리로 변환하기

Python에서는 내장 함수인 dict()를 사용하여 튜플을 딕셔너리 객체로 손쉽게 변환할 수 있습니다. 이 함수는 튜플 안에 튜플이 중첩된 형태, 즉 '튜플의 튜플(tuple of tuples)'을 인자로 받습니다. 이때 각 내부 튜플은 하나의 키(key)와 값(value) 쌍을 나타냅니다.

기본 변환 방법

다음 예제를 살펴보겠습니다. 각 튜플의 첫 번째 요소가 키가 되고, 두 번째 요소가 값이 됩니다.

>>> t = ((1, 'a'), (2, 'b'))
>>> dict(t)
{1: 'a', 2: 'b'}

위 코드에서 (1, 'a')는 키 1과 값 'a'로, (2, 'b')는 키 2와 값 'b'로 변환되어 딕셔너리가 생성됩니다.

키와 값의 위치를 서로 바꾸어 변환하기

만약 기존 튜플에서 키와 값을 반대로 뒤집어 딕셔너리를 만들고 싶다면, 제너레이터 표현식(generator expression)과 함께 dict() 함수를 사용하면 됩니다.

>>> t = ((1, 'a'), (2, 'b'))
>>> dict((y, x) for x, y in t)
{'a': 1, 'b': 2}

여기서 for x, y in t는 각 튜플의 요소를 언패킹(unpacking)하여 x에는 원래의 키를, y에는 원래의 값을 할당합니다. 그런 다음 (y, x)로 순서를 바꾼 새로운 튜플을 생성하므로, 결과적으로 값이 키가 되고 키가 값이 된 딕셔너리가 만들어집니다.

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

Python 2.7 이상에서는 딕셔너리 컴프리헨션(dictionary comprehension)을 사용해도 동일한 결과를 얻을 수 있으며, 코드 가독성 측면에서 더 선호되기도 합니다.

>>> t = ((1, 'a'), (2, 'b'))
>>> {y: x for x, y in t}
{'a': 1, 'b': 2}

정리

  • dict() 함수에 키-값 쌍 형태의 튜플들을 전달하면 딕셔너리로 변환됩니다.
  • 키와 값을 뒤집으려면 제너레이터 표현식 또는 딕셔너리 컴프리헨션에서 순서를 바꾸면 됩니다.
  • 단, 키로 사용되는 값은 해시 가능(hashable)해야 하므로, 리스트처럼 변경 가능한 객체는 키가 될 수 없습니다.