파이썬 사전에서 최대 값을 찾는 방법
-
operator.itemgetter()
메서드를 사용하여 최대 값으로 키 가져 오기 -
Python 3.x 용
dict.items()
메서드를 사용하여 사전에서 최대 값으로 키 가져 오기 - 딕셔너리에서 최대 가치로 키를 얻기위한 일반 및 메모리 효율적인 솔루션
-
max()
및dict.get()
메서드를 사용하여 사전에서 최대 값을 가진 키 얻기
이 자습서에서는 Python에서 최대 값을 가진 키를 얻는 방법을 설명합니다. 또한 메서드가 이전 Python 버전에서 변경 되었기 때문에 개념을 명확히하기 위해 몇 가지 예제 코드를 나열합니다.
operator.itemgetter()
메서드를 사용하여 최대 값으로 키 가져 오기
사전의(key, value)
쌍을 반복하기 위해 새 목록을 만들 필요가 없습니다. 이를 위해stats.iteritems()
를 사용할 수 있습니다. 사전의(key, value)
쌍에 대한 반복자를 반환합니다.
operator.itemgetter(x)
메서드를 사용하여 객체에서x-th
요소를 반환 할 호출 가능한 객체를 가져올 수 있습니다. 여기서 객체는(key, value)
쌍이기 때문에operator.itemgetter(1)
는1
의 인덱스에있는 요소, 즉value
를 참조합니다.
최대 값을 가진 키를 원하므로max
함수에 메서드를 캡슐화합니다.
이 메서드의 기본 예제 코드는 다음과 같습니다.
import operator
stats = {"key1": 20, "key2": 35, "key3": 44}
max_key = max(stats.iteritems(), key=operator.itemgetter(1))[0]
print(max_key)
출력:
key3
참고: 값이 44 인 다른 키가 있어도이 메서드는 두 개의 동일한 최대 값 중 하나를 반환합니다.
또한,iteritems()
는 사전에서 항목을 추가하거나 제거하는 동안RunTimeException
을 발생시킬 수 있으며dict.iteritems
는 Python 3에서 제거됩니다.
Python 3.x 용dict.items()
메서드를 사용하여 사전에서 최대 값으로 키 가져 오기
Python 3.x에서는dict.items()
메서드를 사용하여 사전의키-값
쌍을 반복 할 수 있습니다. 파이썬 2의dict.iteritems()
와 같은 방법입니다.
이 메서드에 대한 예제 코드는 다음과 같습니다.
import operator
stats = {"key1": 20, "key2": 35, "key3": 44}
max_key = max(stats.items(), key=operator.itemgetter(1))[0]
print(max_key)
출력:
key3
딕셔너리에서 최대 가치로 키를 얻기위한 일반 및 메모리 효율적인 솔루션
흥미롭게도 Python 2와 Python 3 모두에서 작동하는 또 다른 솔루션이 있습니다.이 솔루션은 lambda
함수를 사용하여 키를 얻고, max
메서드를 사용하여 얻은 키가 최대인지 확인합니다.
이 접근 방식의 기본 코드는 다음과 같습니다.
import operator
stats = {"key1": 20, "key2": 35, "key3": 44}
max_key = max(stats, key=lambda key: stats[key])
print(max_key)
출력:
key3
max()
및dict.get()
메서드를 사용하여 사전에서 최대 값을 가진 키 얻기
이 문제에 대한 또 다른 해결책은 내장 된max()
메소드를 사용하는 것입니다. 최대 값을 얻기 위해 stats
와 함께 제공되며, 최대 값으로 key
를 반환하기 위해 dict.get()
메소드를 사용합니다.
예제 코드는 다음과 같습니다.
import operator
stats = {"key1": 20, "key2": 35, "key3": 44}
max_key = max(stats, key=stats.get)
print(max_key)
출력:
key3
Syed Moiz is an experienced and versatile technical content creator. He is a computer scientist by profession. Having a sound grip on technical areas of programming languages, he is actively contributing to solving programming problems and training fledglings.
LinkedIn