파이썬 사전에서 최대 값을 찾는 방법

Syed Moiz Haider 2023년1월30일
  1. operator.itemgetter()메서드를 사용하여 최대 값으로 키 가져 오기
  2. Python 3.x 용dict.items()메서드를 사용하여 사전에서 최대 값으로 키 가져 오기
  3. 딕셔너리에서 최대 가치로 키를 얻기위한 일반 및 메모리 효율적인 솔루션
  4. 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 Haider avatar Syed Moiz Haider avatar

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

관련 문장 - Python Dictionary