파이썬 max의 key로 값이 가장 큰 항목 고르기

이 카테고리 글 목록

전체글 보기

기록 목록에서 가장 큰 값을 가진 항목 하나를 고르려면 max()의 key에 비교할 필드를 지정하세요. 예를 들어 식물의 길이로 고른 뒤 이름도 필요하다면, key로 height를 읽고 결과에서 이름과 길이를 함께 꺼낼 수 있습니다.

records = [
    {"name": "갈대 A", "height": 14},
    {"name": "갈대 B", "height": 23},
    {"name": "갈대 C", "height": 19},
]
chosen = max(records, key=lambda row: row["height"])
print(f"선택한 식물 {chosen['name']}")
print(f"길이 {chosen['height']}cm")
선택한 식물 갈대 B
길이 23cm

key 함수가 내놓은 14, 23, 19가 비교 기준입니다. max()가 돌려주는 값은 길이 23에 해당하는 원래 딕셔너리입니다. 그래서 chosen["name"]으로 이름을 읽을 수 있습니다.

동률과 빈 목록을 처리하기

길이가 가장 긴 항목이 여럿이면 max()는 먼저 만난 항목을 고릅니다. 빈 목록이 정상 입력으로 들어올 수 있다면 default=None을 주고, 결과를 읽기 전에 고를 기록이 있었는지 확인하세요.

records = [
    {"name": "갈대 A", "height": 23},
    {"name": "갈대 B", "height": 23},
]
chosen = max(records, key=lambda row: row["height"])
print(f"동률에서 선택한 식물 {chosen['name']}")

records = []
chosen = max(records, key=lambda row: row["height"], default=None)
if chosen is None:
    print("빈 목록에는 고를 기록이 없습니다")
동률에서 선택한 식물 갈대 A
빈 목록에는 고를 기록이 없습니다

기본값을 지정하지 않은 빈 목록에는 ValueError가 발생합니다. 이 예는 모든 기록에 비교 가능한 수치 height가 있다고 가정합니다. 기록은 있는데 height가 빠져 있다면 row["height"]에서 KeyError가 발생하므로, 그 경우는 기록을 읽는 단계에서 다뤄야 합니다.

가상 식물 기록은 Windows의 Python 3.14.3에서 실행했습니다. Python의 max 문서에 비교 키, 동률, 빈 입력의 동작이 정리돼 있습니다.

이 카테고리의 다른 글

전체글 보기

댓글 남기기