튜플로 구성된 리스트(튜플 리스트)에서 최댓값 요소를 찾아야 할 때, Python의 max 메서드와 operator.itemgetter를 함께 사용하면 간단하게 해결할 수 있습니다.
itemgetter는 피연산자(여기서는 각 튜플)에서 특정 위치의 항목을 가져오는 역할을 하며, max 메서드는 인수로 전달된 반복 가능한(iterable) 객체 안에서 최댓값을 가지는 요소를 반환합니다.
이 두 가지를 조합하면 튜플의 특정 인덱스 값을 기준으로 최댓값을 가지는 요소를 손쉽게 찾을 수 있습니다.
예제 코드
from operator import itemgetter
my_list = [('Will', 23), ('Jane', 21), ('El', 24), ('Min', 101)]
print("리스트 내용 : ")
print(my_list)
my_result = max(my_list, key = itemgetter(1))[0]
print("최댓값을 가진 이름 : ")
print(my_result)실행 결과
리스트 내용 :
[('Will', 23), ('Jane', 21), ('El', 24), ('Min', 101)]
최댓값을 가진 이름 :
Min코드 설명
operator모듈에서itemgetter를 임포트하여 사용할 준비를 합니다.- 이름과 숫자로 이루어진 튜플 리스트를 정의한 뒤, 콘솔에 출력합니다.
max메서드가 리스트를 순회하며,key인자에itemgetter(1)를 지정해 각 튜플의 두 번째 요소(인덱스 1, 즉 숫자 값)를 비교 기준으로 삼습니다.- 그 결과 최댓값을 가지는 튜플
('Min', 101)이 선택되고, 뒤에 붙은[0]인덱싱을 통해 해당 튜플의 첫 번째 요소인 이름만 추출됩니다. - 최종 결과는 변수에 저장된 후 콘솔에 출력됩니다.
이처럼 max와 itemgetter를 조합하면 별도의 반복문 없이 한 줄의 코드로 튜플 리스트에서 원하는 기준의 최댓값 요소를 깔끔하게 찾을 수 있습니다.