Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

파이썬 딕셔너리에서 최대값을 가진 키 구하는 방법

파이썬 딕셔너리는 키(key)와 값(value)의 쌍으로 이루어진 자료구조입니다. 이 글에서는 주어진 파이썬 딕셔너리에서 값이 가장 큰 요소의 키를 찾는 다양한 방법을 알아보겠습니다.

max()와 get() 함수 활용하기

가장 간단하고 널리 사용되는 방법은 max() 함수에 key=dict.get을 지정하는 것입니다. 이렇게 하면 max 함수가 각 키를 비교할 때 해당 키의 값을 기준으로 삼게 되어, 최대값을 가진 키가 바로 반환됩니다.

예제 코드

dictA = {"Mon": 3, "Tue": 11, "Wed": 8}
print("주어진 딕셔너리:\n", dictA)
# max와 get 사용
MaxKey = max(dictA, key=dictA.get)
print("최대값을 가진 키:\n", MaxKey)

실행 결과

위 코드를 실행하면 다음과 같은 결과가 출력됩니다.

주어진 딕셔너리:
{'Mon': 3, 'Tue': 11, 'Wed': 8}
최대값을 가진 키:
Tue

itemgetter()와 max() 조합하기

두 번째 방법은 operator 모듈의 itemgetter() 함수를 활용하는 것입니다. dict.items()로 딕셔너리의 (키, 값) 쌍들을 가져온 뒤, 인덱스 1(즉, 값)을 기준으로 최대값을 찾고, 마지막에 [0]으로 해당 항목의 키만 추출합니다.

예제 코드

import operator
dictA = {"Mon": 3, "Tue": 11, "Wed": 8}
print("주어진 딕셔너리:\n", dictA)
# itemgetter와 max 사용
MaxKey = max(dictA.items(), key=operator.itemgetter(1))[0]
print("최대값을 가진 키:\n", MaxKey)

실행 결과

위 코드 역시 동일하게 다음 결과를 출력합니다.

주어진 딕셔너리:
{'Mon': 3, 'Tue': 11, 'Wed': 8}
최대값을 가진 키:
Tue

어떤 방법을 선택해야 할까?

max(dict, key=dict.get) 방식은 코드가 짧고 직관적이어서 대부분의 상황에서 권장됩니다. 반면 itemgetter() 방식은 최대값 자체도 함께 얻고 싶을 때 유용합니다. 예를 들어 [0] 대신 [1]을 사용하면 최대값을 바로 확인할 수 있습니다. 또한 최대값이 여러 개인 경우 두 방법 모두 먼저 등장하는 키를 반환한다는 점도 참고하세요.