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

Python에서 튜플 리스트의 특정 인덱스 기준 최솟값 레코드 찾기

튜플로 이루어진 리스트에서 특정 인덱스(위치)의 값이 가장 작은 튜플을 찾아야 하는 경우가 종종 있습니다. 이럴 때 파이썬에서는 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 함수를 동일한 방식으로 사용하면 됩니다.