[Python] dict.get()

양승우·2024년 10월 24일

Python

목록 보기
8/16

딕셔너리는 (key, value)의 형태로 값이 들어있다
처음 딕셔너리를 배울 때는 dict[key]를 입력하면 value를 반환하는 것으로 배우는데,
이번에 .get() 메서드를 알게 되어서 이를 정리하고자 한다.


sales_data = {"apple": 50, "orange": 2, "banana" : 30}

sales_data['apple'] # >>> 50
sales_data.get('apple') # >>> 50

얼핏 보면 이 둘은 별다른 차이가 없는 것 같지만, 사실 보이지 않는 굉장히 중요한 차이가 있다.
바로 get()을 사용하면 에러를 회피할 수 있다는 것이다.
(참고: 파이썬 dictionary, get()을 사용해야하는 이유)

get() 메서드는 key의 존재 여부에 따라 아래 2가지로 작동한다.

  • 만약 주어진 키(key)가 딕셔너리에 존재한다면, 해당 키에 대한 값을 반환
  • 만약 주어진 키(key)가 딕셔너리에 존재하지 않는다면, 기본값(default value)을 반환(None, 혹은 지정값)

(참고: get메서드란?)

dict.get() 메서드는 값이 없다면 에러가 아닌 null(혹은 지정값)을 반환한다

a = sales_data.get('apple')
print(a)  # >>> 1

b = sales_data.get('pineapple')
print(b)  # >>> None

c = sales_data.get('pineapple', '없는 값입니다')
print(c)  # >>> 없는 값입니다

이를 통해 key, value의 최대값을 구할 때, for문을 사용하지 않고도 수행할 수 있다.

# for문을 사용하는 경우
max_value = 0
max_key = ''
for key, value in sales_data.items():
	if value > max_value:
		max_value = value
		max_key = key
        
# get() 메서드를 사용하는 경우
max_key = max(sales_data.keys(), key=sales_data.get)
max_value = max(sales_data.values())
profile
어제보다 오늘 더

0개의 댓글