본문 바로가기

코딩/파이썬 기초

파이썬 튜토리얼 031. 기본 데이터 타입, 딕셔너리 (dict)

python : built-in types : dict

기본 데이터 타입, 딕셔너리 (dict)

데이터 타입 딕셔너리는 파이썬의 유용한 기본 데이터 타입 중 하나이다.

 

데이터 타입 딕셔너리는 데이터를 키와 값의 쌍으로 저장한다.

딕셔너리의 키는 숫자나 문자열과 같은 immutable 특성의 데이터 만이 사용되어야 한다.

 

딕셔너리 데이터는 중괄호 "{", "}" 또는 키워드 dict으로 생성한다.

 

아무런 값을 가지지 않는 딕셔너리 데이터는 아래와 같은 방식으로 생성할 수 있다.

 

a = dict()
b = {}

 

값을 가지는 딕셔너리 데이터는 아래와 같은 방식으로 생성할 수 있다.

 

num_letters = {65: 'A', 67: 'C', 66: 'B', 68: 'D'}
# --> {65: 'A', 67: 'C', 66: 'B', 68: 'D'}

 

키워드 dict으로도 값을 가지는 딕셔너리 데이터를 생성할 수 있으나, 키워드 dict에 넘겨주는 데이터는 키워드=값 형식이어야 한다.

 

let_numbers = dict(A=65, B=66, C=67, D=68)
# --> {'A': 65, 'B': 66, 'C': 67, 'D': 68}

 

딕셔너리 데이터는 키를 통해 값을 읽거나 쓸 수 있는데, 이때 괄호 "[", "]"를 사용한다.

 

print(num_letters[66])
# --> 'B'

 

딕셔너리 데이터에 새로운 키와 값의 쌍을 추가하고자 할 때도 괄호 "[", "]"를 사용한다.

 

num_letters[69] = chr(69)
print(num_letters)
# --> {65: 'A', 67: 'C', 66: 'B', 68: 'D', 69: 'E'}

 

임의 키가 딕셔너리 데이터에 포함되어 있는지는 키워드 in을 통해 확인할 수 있다.

 

print(90 in num_letters)
# --> False
print(90 not in num_letters)
# --> True

 

딕셔너리 데이터가 제공하는 주요 메서드로 .keys(), .values(), .items()가 있다.

 

print(num_letters.keys())
# --> dict_keys([65, 67, 66, 68])
print(num_letters.values())
# --> dict_values(['A', 'C', 'B', 'D'])
print(num_letters.items())
# --> dict_items([(65, 'A'), (67, 'C'), (66, 'B'), (68, 'D')])

for k, v in num_letters.items():
    print(k, v)

 

특정 상황에서 딕셔너리 데이터 자체(딕셔너리 변수 이름)는 키에 대한 리스트를 의미할 수 있다.

 

print(list(num_letters))
# --> [65, 67, 66, 68]

for k in num_letters:
    print(k)
# --> 65
# --> 67
# --> 66
# --> 68

 

딕셔너리 데이터에서 임의 키와 값의 쌍을 삭제할 수도, 모든 키와 값을 삭제할 수도 있다.

 

del num_letters[65]
print(num_letters)
# --> {67: 'C', 66: 'B', 68: 'D'}

num_letters.clear()
print(num_letters)
# --> {}