Python - 딕셔너리에서 최대값, 최소값 찾기

딕셔너리는 key-value 쌍으로 데이터가 저장되는데, 딕셔너리에서 key들 중에 최대, 최소 값을 찾거나 value 중에 최대, 최소 값을 찾는 방법을 소개합니다.

1. key 또는 value에서 최대, 최소 값 찾기

1.1 key

max(keys), min(keys)는 key들 중에 최대, 최소 값을 찾아서 리턴합니다.

my_dict = {'a': 1, 'c': 12, 'k': 5, 'p': 8}

print(f"max(key): {max(my_dict.keys())}")
print(f"min(key): {min(my_dict.keys())}")

Output:

max(key): p
min(key): a

1.2 value

같은 방식으로, max(values), min(values)는 value들 중에 최대, 최소 값을 찾아서 리턴합니다.

my_dict = {'a': 1, 'c': 12, 'k': 5, 'p': 8}

print(f"max(value): {max(my_dict.values())}")
print(f"min(value): {min(my_dict.values())}")

Output:

max(value): 12
min(value): 1

2. key 또는 value에서 최대, 최소 값 찾고 key-value 요소로 받기

2.1 key

max(items, key), min(items, key)는 인자 key로 설정한 항목으로 items를 정렬하여 최대, 최소 값을 찾고 key-value 요소를 튜플로 리턴합니다. 아래 코드에서 key=operator.itemgetter(0)는 딕셔너리의 key를 의미합니다.

import operator

my_dict = {'a': 1, 'c': 12, 'k': 5, 'p': 8}

max_by_key = max(my_dict.items(), key=operator.itemgetter(0))
min_by_key = min(my_dict.items(), key=operator.itemgetter(0))
print(f"max by key: {max_by_key}")
print(f"min by key: {min_by_key}")

결과를 보면 key의 최대, 최소 값에 해당하는 key-value가 튜플로 리턴되었습니다. key는 max_by_key[0], value는 max_by_key[1]처럼 배열의 인덱스로 접근하여 데이터를 가져올 수 있습니다.

max by key: ('p', 8)
min by key: ('a', 1)

2.2 key

만약 value로 요소들을 정렬하고 최대, 최소를 찾고 싶을 때는 key=operator.itemgetter(1) 처럼 value를 key로 설정해야 합니다. itemgetter(1)은 딕셔너리의 value를 의미합니다.

import operator

my_dict = {'a': 1, 'c': 12, 'k': 5, 'p': 8}

max_by_value = max(my_dict.items(), key=operator.itemgetter(1))
min_by_value = min(my_dict.items(), key=operator.itemgetter(1))
print(f"max by value: {max_by_value}")
print(f"min by value: {min_by_value}")

결과를 보면 value의 최대, 최소에 해당하는 요소들이 리턴되었습니다.

max by value: ('c', 12)
min by value: ('a', 1)
Loading script...
codechachaCopyright ©2019 codechacha