반응형
파이썬 딕셔너리
파이썬의 딕셔너리 자료형을 다루다 보면 키( Key )를 이용해서 값( Value )을 꺼내와야 할 경우가 있습니다. 그럴 땐 알고 있는 키를 이용해서 아래와 같은 방법으로 값을 얻을 수 있습니다.
Case 1
# dictionary data
name_age = { "Kim": 34, "Yoon": 33 }
# Kim의 나이
print(name_age["Kim"]) # 34
# Lee의 나이
print(name_age["Lee"]) # KeyError: 'Lee'
하지만 데이터가 존재하는 Kim의 나이는 잘 가져오지만 존재하지 않는 Lee의 나이를 가져올 경우 KeyError가 발생하게 됩니다. 그럴 경우를 위해 아래와 같이 방어 코드를 작성해주어야 합니다.
에러 방지
# dictionary data
name_age = { "Kim": 34, "Yoon": 33 }
if "Lee" in name_age:
print(name_age["Lee"])
else:
print("Lee doesn't exist")
또 다른 방법인 get() 메서드로 가져올 경우 아래와 같이 존재하지 않는 Key를 Argument로 넘기게 되면 None을 반환해 주기 때문에 좀 더 간편하게 에러를 방지할 수 있습니다.
Case 2
# dictionary data
name_age = { "Kim": 34, "Yoon": 33 }
# Yoon의 나이
print(name_age.get("Yoon")) # 33
# Lee의 나이
print(name_age.get("Lee")) # None
이렇게 None 반환으로 Case 1 보다 좀 더 깔끔해집니다. 좀 더 유용한 점은 딕셔너리의 get() 메서드의 경우 두 개의 인자를 받을 수 있습니다. 첫 번째 인자는 찾고자 하는 Key를 받아 확인하게 되고 없다면 None을 반환하지만, 두 번째 인자를 넘기게 되면 Key가 없을 때 리턴할 초기값을 설정할 수 있습니다.
Get method
💡 dictionary.get( '찾고자 하는 Key', 'Key가 없을 때 리턴할 Default Value' )
# dictionary data
name_age = { "Kim": 34, "Yoon": 33 }
# Lee의 나이
print(name_age.get("Lee", 30)) # 30
오늘 소개했던 두 가지 방법 모두 딕셔너리의 값을 가져올 수 있지만 get() 메서드를 사용하는 것이 깔끔한 예외처리와 파이썬스러운 프로그래밍을 할 수 있습니다.
Reference
반응형
'PROGRAMMING > Python' 카테고리의 다른 글
[Python] Dictionary Key, Value Sorting (파이썬 딕셔너리 정렬) (34) | 2023.04.05 |
---|---|
[Python] 파이썬 배열 [:] / [::] 사용법 (feat.list slicing syntax) (40) | 2023.03.01 |
[Python] 파이썬 분수, 표현 / 연산 / 변환 (feat.Fractions module) (7) | 2023.02.11 |
[Python] 누적합 / 순열 / 조합 (feat.itertools module) (4) | 2023.02.03 |
[Python for AI]파이썬 객체지향프로그래밍 기법, Python Object-Oriented Programming(OOP) (11) | 2022.12.09 |