튜플로 이루어진 리스트에서 특정 인덱스(위치)의 값이 가장 작은 튜플을 찾아야 하는 경우가 종종 있습니다. 이럴 때 파이썬에서는 min 메서드와 operator.itemgetter 메서드를 함께 사용하면 간단하게 해결할 수 있습니다.
min 함수는 반복 가능한(iterable) 객체 내 요소들 중 최솟값을 반환하며, itemgetter는 피연산자(operand)로부터 특정 위치의 항목을 가져오는 역할을 합니다. 두 기능을 조합하면 지정한 인덱스를 기준으로 최솟값을 가진 튜플을 손쉽게 추출할 수 있습니다.
예제 코드
from operator import itemgetter
my_list = [('Will', 45), ('Jam', 13), ('Pow', 89), ('Nyk', 56)]
print("The list is: ")
print(my_list)
my_result = min(my_list, key=itemgetter(1))[0]
print("The value with minimum score is : ")
print(my_result)실행 결과
The list is:
[('Will', 45), ('Jam', 13), ('Pow', 89), ('Nyk', 56)]
The value with minimum score is :
Jam코드 설명
- 먼저
operator모듈에서itemgetter를 임포트합니다. - 이름과 점수로 구성된 튜플들의 리스트를 정의하고, 콘솔에 출력하여 확인합니다.
min함수를 튜플 리스트에 적용하되,key매개변수에itemgetter(1)을 전달합니다. 이는 각 튜플의 두 번째 요소(인덱스 1)를 비교 기준으로 삼겠다는 의미입니다.itemgetter는 피연산자로부터 지정한 위치의 항목을 가져오는 역할을 하므로, 점수를 기준으로 최솟값 비교가 수행됩니다.- 그 결과 가장 낮은 점수(13)를 가진 튜플
('Jam', 13)이 선택되며, 인덱스[0]을 통해 이름 'Jam'만 추출합니다. - 최종 결과는 변수에 저장된 후 콘솔에 출력됩니다.
이 방식은 데이터 분석이나 정렬 작업에서 특정 필드를 기준으로 최댓값·최솟값 레코드를 찾을 때 매우 유용하게 활용됩니다. 참고로 최댓값을 구하려면 min 대신 max 함수를 동일한 방식으로 사용하면 됩니다.