파이썬의 딕셔너리(Dictionary)는 키(key)와 값(value)이 한 쌍을 이루는 데이터 구조입니다. 각 키는 고유해야 하며, 고유한 키는 자신과 연결된 값과 매핑됩니다. 즉, 딕셔너리는 키 : 값 형태의 쌍들을 저장하는 자료형입니다.
이 글에서는 파이썬에서 딕셔너리를 만드는 다양한 방법을 예제와 함께 살펴보겠습니다.
중괄호({})로 딕셔너리 생성하기
가장 기본적인 방법은 중괄호 안에 키:값 쌍을 나열하는 것입니다. 각 쌍은 쉼표(,)로 구분합니다. 값은 어떤 자료형이든 사용할 수 있고 중복도 허용되지만, 키는 반드시 고유해야 하며 문자열이나 숫자처럼 변경 불가능한(immutable) 자료형이어야 합니다.
또한 딕셔너리의 키는 대소문자를 구분합니다. 따라서 철자가 같더라도 대소문자가 다른 두 키는 서로 다른 키로 취급됩니다.
예제
dict1={1:"Tutorials",2:"Point",3:1116}
print("Dictionary 1",dict1)
dict2={1:"TutorialsPoint","TP":"DictionaryTutorial"}
print("Dictionary 2",dict2)출력 결과
Dictionary 1 {1: 'Tutorials', 2: 'Point', 3: 1116}
Dictionary 2 {1: 'TutorialsPoint', 'TP': 'DictionaryTutorial'}위 예제에서 볼 수 있듯이, 키와 값에는 어떤 자료형이든 자유롭게 사용할 수 있습니다. 단, 모든 키는 고유해야 한다는 점을 기억하세요.
키 이름이 중복되면 어떻게 될까요?
예제를 통해 직접 확인해 보겠습니다.
예제
dict1={1:"Tutorials",1:"Point",3:1116}
print("Dictionary 1",dict1)출력 결과
Dictionary 1 {1: 'Point', 3: 1116}위 예제처럼 같은 이름의 키가 여러 개 정의되면, 앞선 값은 뒤에 온 값으로 덮어씌워집니다. 여기서는 키 “1”의 “Tutorials”가 “Point”로 대체되었습니다.
하나의 키에 여러 값을 함께 담고 싶다면 리스트(list)를 값으로 할당하면 됩니다.
dict() 메서드 사용하기
파이썬 내장 함수인 dict()를 사용해서도 딕셔너리를 만들 수 있습니다. dict() 함수 안에 키:값 쌍을 정의하면 됩니다.
예제
dict1=dict({1:"Tutorials",1:"Point",3:1116})
print("Dictionary 1",dict1)
dict2=dict([(1,"Tutorials"),(2,"Point")])
print("Dictionary 2",dict2)dict2는 dict() 메서드에 각 항목을 (키, 값) 튜플 쌍으로 전달하여 생성한 딕셔너리입니다.
출력 결과
Dictionary 1 {1: 'Point', 3: 1116}
Dictionary 2 {1: 'Tutorials', 2: 'Point'}빈 딕셔너리 만들기
비어 있는 딕셔너리는 중괄호 두 개 {}만 작성하면 간단히 만들 수 있습니다.
예제
dict1={}
print("Dictionary 1",dict1)출력 결과
Dictionary 1 {}중첩 딕셔너리 만들기
중첩 딕셔너리(Nested Dictionary)는 말 그대로 딕셔너리 안에 또 다른 딕셔너리가 들어 있는 구조입니다. 중첩 딕셔너리에서는 하나의 키가 다른 딕셔너리를 값으로 가질 수 있습니다.
예제
dict1={1:"Tutorials",2:"Point",3:{'A':"Welcome",'B':"To",'C':"TutorialsPoint"}}
print(dict1)출력 결과
{1: 'Tutorials', 2: 'Point', 3: {'A': 'Welcome', 'B': 'To', 'C': 'TutorialsPoint'}}위 예제에서 키 '3'의 값으로 또 다른 딕셔너리가 들어 있습니다. 이렇게 구성된 dict1이 바로 중첩 딕셔너리입니다.