◎ 딕셔너리(Dictionary)
파이썬의 또 다른 자료형인 리스트(list)는 값을 저장할 때 인덱스를 기반으로 한다면 딕셔너리(Dictionary)는 키를 기반으로 값을 저장한다. 대괄호([ ])로 선언하는 리스트와는 달리 딕셔너리는 중괄호({ })로 선언한다. 딕셔너리를 선언하는 방법은 아래와 같다.
dict = {
"key1": "value1",
"key2": "value2",
"key3": "value3"
}
키 값으로는 문자열, 숫자, 불 등으로 선언이 가능한데 일반적으로는 문자열로 사용하는 경우가 많다. 리스트의 요소에 접근할 때는 인덱스를 사용하지만 딕셔너리의 요소에 접근할 때는 키 값을 사용한다.
딕셔너리 요소 값에는 문자열, 숫자, 불 등의 자료형이 들어갈 수 있다. 리스트와 딕셔너리도 엄연한 자료형이므로 저장이 가능하다. 만약 리스트나 딕셔너리를 값으로 가진다면 중첩된 인덱스나 중첩된 키를 사용하여 요소 하나하나에 접근이 가능하다. 무슨 말인지 아래에서 보이도록 하겠다.
※ NameError ※
딕셔너리의 키 값으로 문자열을 사용하면 반드시 따옴표로 묶어주어야 한다. 그렇지 않다면 NameError 예외가 발생한다.
딕셔너리에 값 추가/제거하기
딕셔너리에 값을 추가/제거하는 경우에도 키 값을 사용한다. 값을 추가하는 경우 기존에 존재하는 키를 사용하면 기존의 값이 변경되고 새로운 키를 사용하면 새로운 값이 목록의 맨 마지막에 추가된다. 값을 제거하는 경우에는 리스트에서 사용했던 것처럼 del 키워드를 사용하여 제거한다.
※ KeyError ※
리스트에서 길이를 넘는 인덱스에 접근하면 IndexError가 발생하는 것처럼 딕셔너리도 존재하지 않는 키에 접근하면 마찬가지로 KeyError가 발생한다.
딕셔너리 내부에 키가 있는지 확인하기
리스트에서 in과 not in 연산자를 통해 요소가 있는지 없는지 확인했던 것처럼 딕셔너리에서도 in 연산자의 사용이 가능하다. 다만 차이점이라면 딕셔너리에서는 요소가 아닌 키 값이 있는지 없는지 확인한다는 점이다.
get( ) 함수
get( ) 함수를 사용하여 딕셔너리에 접근도 가능하다. 해당 키 값이 존재하면 그에 대응하는 값을 출력하고 존재하지 않는다면 None을 출력한다.
for 반복문에서 딕셔너리의 사용
리스트와 딕셔너리는 주로 반복문과 함께 사용된다. 어려운 내용이 아니므로 for문의 형태와 그 사용 예시를 아래에서 보이도록 하겠다.
for 키 변수 in 딕셔너리:
코드