Language/PYTHON
딕셔너리
구일일구
2021. 6. 20. 23:48
반응형
딕셔너리와 리스트의 차이점
자료형 | 의미 | 가리키는 위치 | 선언 형식 |
리스트 | 인덱스를 기반으로 값을 저장 | 인덱스 | 변수 = [ ] |
딕셔너리 | 키를 기반으로 값을 저장 | 키 | 변수 = { } |
딕셔너리 선언하기
딕셔너리는 { } 중괄호로 선언하며, '키: 값'의 형태를 따옴표(,)로 연결해서 만듦
키는 문자열, 숫자, 불 등으로 선언할 수 있으나 일반적으로는 문자열로 사용하는 경우가 많음
기본 형태
변수 = {
키: 값,
키: 값,
...
키: 값
}
dict_a = {
"name": "어밴져스 엔드게임",
"type": "히어로 무비"
}
print(dict_a)
</>
{'name': '어밴져스 엔드게임', 'type': '히어로 무비'}
딕셔너리의 요소에 접근하기
리스트처럼 딕셔너리 뒤에 [ ] 대괄호를 입력하고 내부에 인덱스처럼 키를 입력
딕셔너리를 선언할 때는 { }를 사용하지만, 딕셔너리의 요소에 접근할 때는 리스트처럼 [ ] 대괄호를 입력함
print(dict_a["name"])
</>
'어벤져스 엔드게임'
print(dict_a["type"])
</>
'히어로 무비'
리스트와 딕셔너리도 하나의 자료이므로, 리스트와 딕셔너리를 값으로 넣을 수 있음
dict_b = {
"director": ["안소니 루소", "조 루소"],
"cast": ["아이언맨", "타노스", "토르", "닥터스트레인지", "헐크"]
}
print(dict_b)
print(dict_b["director"])
</>
{'director': ['안소니 루소', '조 루소'], 'cast': ['아이언맨', '타노스', '토르', '닥터스트레인지', '헐크']}
['안소니 루소', '조 루소']
구분 | 선언 형식 | 사용 예 | 틀린 예 |
리스트 | list_a = [ ] | list_a[1] | |
딕셔너리 | dict_a = { } | dict_a["name"] | dict_a{"name"} |
리스트 안의 특정 값 출력
print(dictionary["ingredient"])
</>
['망고', '설탕', '메타중아황산나트륨', '치자황색소']
print(dictionary["ingredient"][1])
</>
'설탕'
딕셔너리에 값 추가하기
딕셔너리[새로운 키] = 새로운 값
dictionary["price"] = 5000
print(dictionary)
</>
{'name': '7D 건조 망고', 'type': '당절임', '
ingredient': ['망고', '설탕', '메타중아황산나트륨', '치자황색소'],
'origin': '필리핀', 'price': 5000}
딕셔너리 값 변경하기
딕셔너리[원래 키] = 변경한 값
# 딕셔너리 선언
dictionary = {
"name": "7D 건조 망고",
"type": "당절임",
"ingredient": ["망고", "설탕", "메타중아황산나트륨", "치자황색소"],
"origin": "필리핀"
}
# 값을 변경
dictionary["name"] = "8D 건조 망고"
print(dictionary["name"])
</>
8D 건조 망고
딕셔너리 값 제거하기
del 딕셔너리[키]
리스트와 같이 del 키워드를 사용하여 특정 키를 지정하면 해당 요소가 제거됨
del dictionary["ingredient"]
print(dictionary)
</>
{'name': '7D 건조 망고', 'type': '당절임',
'origin': '필리핀', 'price': 5000}
아무것도 없는 딕셔너리에 요소 추가하기
dictionary = {}
# 딕셔너리에 요소 추가
dictionary["name"] = "새로운 이름"
dictionary["head"] = "새로운 정신"
dictionary["body"] = "새로운 몸"
print(dictionary)
</>
{'name': '새로운 이름', 'head': '새로운 정신', 'body': '새로운 몸'}
딕셔너리 내부에 키 있는지 확인
In 키워드
리스트 내부에 값이 있는지 없는지 확인하는 것과 같이 딕셔너리 내부에 키가 있는지 없는지 확인
print("name" in dictionary)
print("ingredient" in dictionary)
</>
True
True
키가 존재하는지 확인하고 값에 접근하기
# 딕셔너리 선언
dictionary = {
"name": "7D 건조 망고",
"type": "당절임",
"ingredient": ["망고", "설탕", "메타중아황산나트륨", "치자황색소"],
"origin": "필리핀"
}
key = input("접근하고자 하는 키: ")
if key in dictionary:
print(dictionary[key])
else:
print("존재하지 않는 키에 접근하고 있습니다.")
get( ) 함수
get() 함수는 딕셔너리의 키로 값을 추출하는 기능
딕셔터리[키]를 입력할 때와 같은 기능 수행
그러나 존재하지 않는 키에 접근할 경우 KeyError를 발생시키지 않고 None을 출력
# 딕셔너리 선언
dictionary = {
"name": "7D 건조 망고",
"type": "당절임",
"ingredient": ["망고", "설탕", "메타중아황산나트륨", "치자황색소"],
"origin": "필리핀"
}
#존재하지 않는 키에 접근하기
value = dictionary.get("존재하지 않는 키")
print(value)
# none 확인 방법
if value == None:
print("존재하지 않는 키에 접근했었습니다.")
#존재하는 키에 접근
value = dictionary.get("type")
print("값:", value)
NameError 오류
딕셔너리의 키를 문자열로 사용할 때는 반드시 따옴표를 붙여야 함
이러한 코드를 실행하지 않으면 NameError라는 오류가 발생
dict_key = {
name: "7D 건조 망고",
type: "당절임"
}
</>
NameError: name 'name' is not defined
KeyError 예외
리스트의 길이를 넘는 인덱스에 접근하면 IndexError가 발생하듯,
딕셔너리도 존재하지 않는 키에 접근, 존재하지 않는 키를 제거할 때 마찬가지로 KeyError가 발생함
dictionary = {}
print(dictionary["key"])
</>
KeyError: 'key'
반응형