파이썬 dict() 사용법 5가지

파이썬 dict() 함수는 딕셔너리를 생성할 때 사용하는 유용한 함수입니다. 딕셔너리는 키(key)와 값(value) 쌍으로 데이터를 저장하는데, 이 구조는 데이터를 검색하고 처리하는 데 매우 유용합니다. 이번 글에서는 파이썬의 dict() 함수를 사용하는 다양한 방법을 소개하겠습니다.

딕셔너리란?

딕셔너리는 파이썬에서 사용되는 “해시맵(HashMap)” 형태의 데이터입니다. 딕셔너리는 다음과 같이 중괄호 {}를 사용하여 생성할 수 있습니다.

Python
a = {"name": "Jack", "age": 38, "city": "Tokyo"}

위에서 사용한 코드를 보면 name, age, city는 키이며, “Jack”, 38, “Tokyo”는 값입니다. 아래의 그림에서 중괄호를 사용하여 생성한 딕셔너리를 확인할 수 있습니다.

그림 1. 중괄호를 사용하여 파이썬 딕셔너리 객체 생성
그림 1. 중괄호를 사용하여 파이썬 딕셔너리 객체 생성

파이썬 dict() 함수로 딕셔너리 생성

dict() 함수는 딕셔너리를 생성하는 또 다른 방법입니다. 이 방법은 가독성이 좋고, 특히 키와 값이 명확한 경우에 많이 사용됩니다. 다음은 dict()를 사용하여 딕셔너리를 생성하는 예시입니다.

Python
b = dict(name="Jack", age=38, city="Tokyo")

이렇게 작성된 딕셔너리는 앞서 설명한 중괄호 {}를 사용한 방식과 동일하게 작동합니다. 차이점은 dict() 함수를 사용했을 때는 키에 반드시 문자열을 사용해야 한다는 것입니다.

그림 2. 파이썬 dict() 함수로 딕셔너리 생성: 키=값 지정
그림 2. 파이썬 dict() 함수로 딕셔너리 생성: 키=값 지정

zip() 함수를 사용하여 딕셔너리 생성

키와 값이 각각 리스트 형태이며 키의 개수와 값의 개수가 동일하게 구성된 경우 zip() 함수를 사용하면 보다 편리하게 딕셔너리를 생성할 수 있습니다. 아래의 코드 역시 위에서의 코드와 동일한 딕셔너리를 생성합니다.

Python
c = dict(zip(["name", "age", "city"], ["Jack", 38, "Tokyo"]))

튜플의 리스트 형태인 데이터를 딕셔너리로 생성

키와 값이 튜플로 짝지어져 있으며, 여러 개의 튜플이 리스트 형태인 경우에도 딕셔너리 생성을 아래와 같이 할 수 있습니다.

Python
d = dict([("name", "Jack"), ("age", 38), ("city", "Tokyo")])

중괄호를 사용한 방식

중괄호를 사용하여 선언한 딕셔너리를 dict() 함수로 전달할 때 키의 순서가 달라져도 동일한 딕셔너리가 생성됩니다. 종종 dict() 함수에 위에서 살펴본 zip()을 이용한 경우나 중괄호를 이용한 경우를 신경 쓰지 않고 dict() 함수를 이용해서 딕셔너리를 생성할 수 있습니다.

Python
e = dict({"city": "Tokyo", "name": "Jack", "age": 38})

키, 값 조건 혼합하여 딕셔너리 생성

일부 값은 중괄호 형태로 전달하고, 새로운 값을 추가하는 경우에는 두 가지 값을 혼합한 형태로 생성할 수 있습니다.

Python
f = dict({"name": "Jack", "city": "Tokyo"}, age=38)

아래 그림을 보면 흥미롭게도 위에서 사용한 모든 방법이 동일한 딕셔너리를 생성한 것임을 확인할 수 있습니다. 딕셔너리에서는 키의 순서는 중요한 게 아니므로 모두 동일한 딕셔너리로 처리됩니다.

그림 3. 파이썬 dict(): 다양한 형태의 딕셔너리 생성 방법
그림 3. 파이썬 dict(): 다양한 형태의 딕셔너리 생성 방법

딕셔너리 생성 시 주의사항

딕셔너리를 생성하는 것은 매우 간편해 보이지만 몇 가지 주의할 점이 있습니다.

키는 고유해야 합니다

딕셔너리의 키는 중복될 수 없습니다. 중괄호를 사용하여 딕셔너리를 생성하는 경우에는 중복된 키가 있을 때에는 마지막으로 입력된 값만 저장됩니다. dict() 함수를 사용한 경우에는 다음과 같이 “SyntaxError: keyword argument repeated: variable_name”과 같은 오류 메시지를 통해서 키가 중복된 것을 알려줍니다.

그림 4. 딕셔너리에는 동일한 키를 사용할 수 없음
그림 4. 딕셔너리에는 동일한 키를 사용할 수 없음

해시 가능한 자료형만 키로 사용 가능

딕셔너리의 키는 문자열, 숫자 등 변경할 수 없는(immutable) 자료형만 가능합니다. 리스트와 같은 가변(mutable) 자료형은 키로 사용할 수 없습니다.

그림 5. 딕셔너리의 키로 문자열이나 숫자를 사용할 수 있음
그림 5. 딕셔너리의 키로 문자열이나 숫자를 사용할 수 있음

dict() 사용시에는 문자열만 키로 사용 가능

딕셔너리는 문자열이나 숫자를 모두 키로 사용할 수 있지만, dict() 함수를 사용하여 딕셔너리를 생성할 때에는 문자열만 키로 사용할 수 있습니다. 숫자를 키로 사용하려고 하면 ‘SyntaxError: expression cannot contain assignment, perhaps you meant “==”?’ 메시지를 통해 해당 키를 할당할 수 없으며, 혹시 “==” 같음을 표시하려고 한 것이 아닌지 물어봅니다.

그림 6. 파이썬 dict() 함수 사용시에는 문자열만 키로 사용할 수 있음
그림 6. 파이썬 dict() 함수 사용시에는 문자열만 키로 사용할 수 있음

정리

파이썬 딕셔너리(dict)는 데이터를 키와 값 쌍으로 저장하여 효율적으로 관리할 수 있는 자료형입니다. 딕셔너리를 사용할 때는 키가 고유해야 한다는 점과, 키로 해시 가능한 자료형만 사용할 수 있다는 점을 주의해야 합니다. 이를 잘 활용하면 파이썬에서 데이터를 더 효율적으로 다룰 수 있을 것입니다.

참고자료

관련 포스트

Leave a Comment