오늘은 딕셔너리 객체의 get() 메소드에 대해 설명하도록 하겠습니다. 먼저 get() 메서드의 필요성을 먼저 살펴보겠습니다.
우선 과일 종류를 키로, 가격을 값으로 갖는 다음과 같은 딕셔너리 a가 있다고 가정하겠습니다.
a = {"banana": 1500, "watermelon": 900}
이 딕셔너리에서 바나나의 가격을 참조하고 싶으면 다음과 같이 코드를 짤 수 있습니다.
print(a["banana"]) # 1500
그런데 위와 같은 방식으로 코드를 작성하면 우리가 키로 선택한 것이 딕셔너리에 없는 경우에는 Key 에러가 발생합니다.
print(a["grape"]) # KeyError: 'grape'
이렇게 딕셔너리에 존재하지 않는 키를 참조하려고 할 위험이 조금이라도 있는 경우에는 위와 같은 방식으로 코드를 짜는 것은 위험합니다. 대신 딕셔너리의 get() 메서드를 사용하면 조금 더 안전하게 작동하는 코드를 짤 수 있습니다.
우선 get() 메서드는 다음과 같이 사용합니다.
dict.get(key, default=None)
get 메서드의 리턴값은 첫번째 인자인 키의 값입니다. 무슨 말인지 모르실 분들을 위해서 예를 들어서 설명하겠습니다. 사실 처음이라면 무슨 말인지 이해가 안 되는 것이 정상입니다.
a = {"banana": 1500, "watermelon": 900}
print(a.get("banana")) # 1500
print(a.get("grape")) # None
위와 같이 get 메서드를 사용하면 참조하고자 하는 키가 존재하지 않더라도 에러를 발생시키지 않고 None 값을 리턴해줍니다. 그러면 개발자는 if a.get("banana"): 이런 식으로 값의 존재 여부를 가지고 다음 로직들을 구현해나갈 수 있습니다.
만약 디폴트 값으로 None 대신에 다른 값을 설정하고 싶다면 두번째 인자로 넣어주면 됩니다.
print(a.get("banana", 0)) # 1500
print(a.get("grape", 0)) # 0
그러면 None 대신 0을 반환해줍니다.
이렇게 키가 존재하지 않을 경우를 대비해서 get 메서드를 사용하여 default 값을 설정해놓으면 조금 더 오류에 잘 대비된 코드를 짤 수가 있습니다.
'Dev > python' 카테고리의 다른 글
[python] datetime 모듈로 일, 시간, 분, 초 더하거나 빼는 방법, timedelta (2) | 2021.05.21 |
---|---|
[flask] rows에서 각 row가 몇 번째 것인지 보여주고 싶다면? (0) | 2021.05.15 |
[python] join 함수로 리스트의 요소들 하나의 문자열로 합치기 (0) | 2021.05.08 |
[python] 딕셔너리 객체의 setdefault() 메소드 사용법 (0) | 2021.04.29 |
[python+pandas] pandas로 엑셀 파일 읽고 수정한 후 쓰기 (0) | 2021.04.26 |
[python] datetime 객체 strptime, strftime 메소드 활용법 (0) | 2021.04.24 |
[python] selenium 크롤링 중 크롬 드라이버의 창 크기 조절하기 (2) | 2021.04.22 |
[python] selenium으로 크롤링하는 중에 click() 안 먹힐 때 (3) | 2021.04.21 |