딕셔너리와 반복문
딕셔너리란?
- 리스트(list)가 인덱스를 기반으로 값을 저장하는 것 이라면 딕셔너리(dictionary)는 키(key)를 기반으로 값을 저장하는 것이라고 할 수 있다.
- Key(키): 딕셔너리 내부에서 값에 접근할 때 사용한다.
- value(값): 딕셔너리 내부에 있는 각각의 내용을 의미한다.
딕셔너리 선언하기
- 딕셔너리는 중괄호로 선언하며 키: 값 형태를 쉼표로 연결해서 만든다. 키는 문자열 숫자, 불 등으로 선언 할 수 있다. 하지만 일반적으로는 문자열로 사용하는 경우가 많다.
dict_a = {
"name": "어벤져스 엔드게임",
"type": "히어로 무비"
}
print(dict_a)
# 실행 결과
{'name': '어벤져스 엔드게임', 'type': '히어로 무비'}
딕셔너리 요소에 접근하기
- 특정 키값만 따로 출력할 수도 있다. 딕셔너리 요소에 접근할 때는 리스트처럼 딕셔너리 뒤에 대괄호를 입력하고 내부에 인덱스처럼 키를 입력한다. 이때 주의할 점은 딕셔너리를 선언할 때는 중괄호를 사용하지만 딕셔너리의 요소에 접근할 때는 리스트처럼 딕셔너리 뒤에 대괄호를 입력하고 내부에 인덱스처럼 키를 입력하는 것이다.
print(dict_a["name"])
# 실행 결과
'어벤져스 엔드게임'
print(dict_a["type"])
# 실행 결과
'히어로 무비'
- 딕셔너리 내부의 값에 문자열, 숫자, 불 등의 다양한 자료를 넣을 수도 있다. 리스트와 딕셔너리도 하나의 자료이므로 리스트와 딕셔너리를 값으로 넣을 수도 있다.
dict_b = {
"director": ["안소니 루소", "조 루소"],
"cast": ["아이언맨", "타노스", "토르", "닥터스트레인지", "헐크"]
}
print(dict_b)
# 실행 결과
{'director': ['안소니 루소', '조 루소'], 'cast': ['아이언맨', '타노스', '토르', '닥터스트레인지', '헐크']}
print(dict_b["director"])
# 실행 결과
['안소니 루소', '조 루소']
- 요소에 접근하는 방법은 리스트와 거의 비슷하므로 쉽게 이해할 수 있다.
딕셔너리에 값 추가하기, 제거하기
- 딕셔너리에 값을 추가할 때는 키를 기반으로 값을 입력하면 된다.
딕셔너리[새로운 키] = 새로운 값
딕셔너리 내부에 키가 있는지 확인하기
- 딕셔너리에 존재하지 않는 키에 접근하면 KeyError가 발생한다. 그래서 존재하는 키인지 존재하지 않는 키인지 확인할 수 있는 방법이 필요하다.
in 키워드
- 리스트 내부에 값이 있는지 없는지 확인할 때 in 키워드를 사용했던 것처럼 딕셔너리 내부에 키가 있는지 없는지 확인할 때도 in 키워드를 사용한다.
# 딕셔너리를 선언한다.
dictionary = {
"name": "7D 건조 망고",
"type": "당절임",
"ingredient": ["망고", "설탕", "메타중아황산나트륨", "치자황색소"],
"origin": "필리핀"
}
# 사용자로부터 입력을 받는다.
key = input(">접근하고자 하는 키: ")
# 출력한다.
if key in dictionary:
print(dictionary[key])
else:
print("존재하지 않는 키에 접근하고 있습니다.")
get() 함수
- 존재하지 않는 키에 접근하는 상황에 대한 두번째 대처 방법으로는 딕셔너리의 get 함수를 사용하는 방법이다.
- get 함수는 딕셔너리의 키로 값을 추출하는 기능으로 딕셔너리[키] 입력할 때와 같은 기능을 수행하지만 존재하지 않는 키에 접근할 경우 KeyError를 발생시키지 않고 None을 출력한다.
# 딕셔너리를 선언한다.
dictionary = {
"name": "7D 건조 망고",
"type": "당절임",
"ingredient": ["망고", "설탕", "메타중아황산나트륨", "치자황색소"],
"origin": "필리핀"
}
# 존재하지 않는 키에 접근해 본다.
value = dictionary.get("존재하지 않는 키")
print("값:", value)
# None 확인 방법
if value == None:
print("존재하지 않는 키에 접근했었습니다.")
for 반복문: 딕셔너리와 함께 사용하기
- for 반복문과 딕셔너리를 조합해서 사용하면 아래와 같은 형태가 된다. 여기서 주의할 점은 딕셔너리 내부에 있는 키가 변수에 들어간다는 것이다.
for 키 변수 in 딕셔너리:
코드
# 딕셔너리를 선언한다.
dictionary = {
"name": "7D 건조 망고",
"type": "당절임",
"ingredient": ["망고", "설탕", "메타중아황산나트륨", "치자황색소"],
"origin": "필리핀"
}
# for 반복문을 사용한다.
for key in dictionary:
#출력한다.
print(key, ":", dictionary[key])