파이썬 dict() 함수는 딕셔너리를 생성할 때 사용하는 유용한 함수입니다. 딕셔너리는 키(key)와 값(value) 쌍으로 데이터를 저장하는데, 이 구조는 데이터를 검색하고 처리하는 데 매우 유용합니다. 이번 글에서는 파이썬의 dict() 함수를 사용하는 다양한 방법을 소개하겠습니다.
목차
딕셔너리란?
딕셔너리는 파이썬에서 사용되는 “해시맵(HashMap)” 형태의 데이터입니다. 딕셔너리는 다음과 같이 중괄호 {}
를 사용하여 생성할 수 있습니다.
a = {"name": "Jack", "age": 38, "city": "Tokyo"}
위에서 사용한 코드를 보면 name, age, city는 키이며, “Jack”, 38, “Tokyo”는 값입니다. 아래의 그림에서 중괄호를 사용하여 생성한 딕셔너리를 확인할 수 있습니다.
파이썬 dict() 함수로 딕셔너리 생성
dict()
함수는 딕셔너리를 생성하는 또 다른 방법입니다. 이 방법은 가독성이 좋고, 특히 키와 값이 명확한 경우에 많이 사용됩니다. 다음은 dict()
를 사용하여 딕셔너리를 생성하는 예시입니다.
b = dict(name="Jack", age=38, city="Tokyo")
이렇게 작성된 딕셔너리는 앞서 설명한 중괄호 {}
를 사용한 방식과 동일하게 작동합니다. 차이점은 dict()
함수를 사용했을 때는 키에 반드시 문자열을 사용해야 한다는 것입니다.
zip() 함수를 사용하여 딕셔너리 생성
키와 값이 각각 리스트 형태이며 키의 개수와 값의 개수가 동일하게 구성된 경우 zip() 함수를 사용하면 보다 편리하게 딕셔너리를 생성할 수 있습니다. 아래의 코드 역시 위에서의 코드와 동일한 딕셔너리를 생성합니다.
c = dict(zip(["name", "age", "city"], ["Jack", 38, "Tokyo"]))
튜플의 리스트 형태인 데이터를 딕셔너리로 생성
키와 값이 튜플로 짝지어져 있으며, 여러 개의 튜플이 리스트 형태인 경우에도 딕셔너리 생성을 아래와 같이 할 수 있습니다.
d = dict([("name", "Jack"), ("age", 38), ("city", "Tokyo")])
중괄호를 사용한 방식
중괄호를 사용하여 선언한 딕셔너리를 dict() 함수로 전달할 때 키의 순서가 달라져도 동일한 딕셔너리가 생성됩니다. 종종 dict() 함수에 위에서 살펴본 zip()을 이용한 경우나 중괄호를 이용한 경우를 신경 쓰지 않고 dict() 함수를 이용해서 딕셔너리를 생성할 수 있습니다.
e = dict({"city": "Tokyo", "name": "Jack", "age": 38})
키, 값 조건 혼합하여 딕셔너리 생성
일부 값은 중괄호 형태로 전달하고, 새로운 값을 추가하는 경우에는 두 가지 값을 혼합한 형태로 생성할 수 있습니다.
f = dict({"name": "Jack", "city": "Tokyo"}, age=38)
아래 그림을 보면 흥미롭게도 위에서 사용한 모든 방법이 동일한 딕셔너리를 생성한 것임을 확인할 수 있습니다. 딕셔너리에서는 키의 순서는 중요한 게 아니므로 모두 동일한 딕셔너리로 처리됩니다.
딕셔너리 생성 시 주의사항
딕셔너리를 생성하는 것은 매우 간편해 보이지만 몇 가지 주의할 점이 있습니다.
키는 고유해야 합니다
딕셔너리의 키는 중복될 수 없습니다. 중괄호를 사용하여 딕셔너리를 생성하는 경우에는 중복된 키가 있을 때에는 마지막으로 입력된 값만 저장됩니다. dict() 함수를 사용한 경우에는 다음과 같이 “SyntaxError: keyword argument repeated: variable_name”과 같은 오류 메시지를 통해서 키가 중복된 것을 알려줍니다.
해시 가능한 자료형만 키로 사용 가능
딕셔너리의 키는 문자열, 숫자 등 변경할 수 없는(immutable) 자료형만 가능합니다. 리스트와 같은 가변(mutable) 자료형은 키로 사용할 수 없습니다.
dict() 사용시에는 문자열만 키로 사용 가능
딕셔너리는 문자열이나 숫자를 모두 키로 사용할 수 있지만, dict() 함수를 사용하여 딕셔너리를 생성할 때에는 문자열만 키로 사용할 수 있습니다. 숫자를 키로 사용하려고 하면 ‘SyntaxError: expression cannot contain assignment, perhaps you meant “==”?’ 메시지를 통해 해당 키를 할당할 수 없으며, 혹시 “==” 같음을 표시하려고 한 것이 아닌지 물어봅니다.
정리
파이썬 딕셔너리(dict
)는 데이터를 키와 값 쌍으로 저장하여 효율적으로 관리할 수 있는 자료형입니다. 딕셔너리를 사용할 때는 키가 고유해야 한다는 점과, 키로 해시 가능한 자료형만 사용할 수 있다는 점을 주의해야 합니다. 이를 잘 활용하면 파이썬에서 데이터를 더 효율적으로 다룰 수 있을 것입니다.