파이썬 max() 5가지 사용법

파이썬 max() 내장 함수는 가장 큰 값을 찾는 작업을 쉽게 처리할 수 있습니다. 이 포스팅에서는 max() 함수의 기본적인 사용법부터, 다양한 활용 방법을 설명하고, 주의할 점도 함께 다루겠습니다.

파이썬 max() 함수란?

max() 함수는 리스트, 튜플 등 반복 가능한(iterable) 데이터에서 가장 큰 값을 찾아주는 함수입니다. 즉, 여러 값 중에서 가장 큰 값을 쉽게 구할 수 있습니다. 기본적인 사용법은 다음과 같습니다.

Python
max(1, 3, 2)

위 코드에서는 1, 3, 2라는 숫자들 중에서 가장 큰 값인 3이 반환됩니다.

max() 함수의 기본 사용법

리스트나 튜플에서 사용

리스트와 같은 데이터 구조에서 max()를 사용하면 해당 리스트에서 가장 큰 값이 반환됩니다.

Python
numbers = [3, 4, 1, 9, 6]
print(max(numbers))

이 예시에서는 numbers라는 리스트에서 가장 큰 값인 9가 반환됩니다.

여러 개의 인자를 직접 전달

max() 함수는 여러 개의 인자를 직접 전달받아 처리할 수도 있습니다.

Python
print(max(3, 5, 7))

여러 인자를 직접 넣었을 때도 가장 큰 값이 반환됩니다. 이 경우도 리스트나 튜플을 사용하는 것과 마찬가지로 쉽게 큰 값인 7을 찾을 수 있습니다.

문자열에서의 max()

파이썬에서 max() 함수는 숫자뿐만 아니라 문자열에서도 사용할 수 있습니다. 이때는 문자열의 각 문자의 유니코드 값을 기준으로 가장 큰 값이 결정됩니다. 예를 들어, 문자열에서 가장 큰 문자를 구하는 코드는 다음과 같습니다.

Python
print(max("hello"))

여기서 유니코드 값이 가장 큰 문자인 'o'가 반환됩니다.

그림 1. 파이썬 max() 함수로 문자열에서 가장 유니코드 값이 큰 문자 출력

key 파라미터를 이용한 커스텀 정렬

max() 함수는 단순히 숫자나 문자열만 비교하는 것이 아니라, key라는 인자를 활용하여 다양한 데이터 구조에서 원하는 방식으로 최대 값을 구할 수 있습니다.

예시1: 리스트 안에 있는 딕셔너리에서 특정 키 값 비교

리스트 안에 딕셔너리가 여러 개 있을 때, 각 딕셔너리의 특정 값을 기준으로 가장 큰 값을 구할 수 있습니다.

Python
students = [
    {"name": "John", "score": 75},
    {"name": "Emily", "score": 85},
    {"name": "Anna", "score": 90}
]

top_student = max(students, key=lambda student: student["score"])
print(top_student)

위 코드에서는 students라는 리스트 안에서 점수(score)를 기준으로 가장 높은 점수를 가진 학생을 찾아냅니다.

그림 2. 파이썬 max() 함수로 딕셔너리로 구성된 리스트에서 특정 값 기준으로 탐색

예시2: 문자열 길이 비교

문자열의 길이를 기준으로 가장 긴 문자열을 구할 수도 있습니다.

Python
words = ["apple", "banana", "cherry", "blueberry"]
longest_word = max(words, key=len)
print(longest_word)

key=len을 사용하여 문자열의 길이를 기준으로 가장 긴 단어를 찾아냅니다.

그림 3. 파이썬 max() 함수와 len() 함수 함께 사용해서 가장 긴 단어 찾기

max() 함수의 숨겨진 기능: default 파라미터

파이썬 3.4 버전 이후로, max() 함수는 default라는 파라미터를 받을 수 있습니다. 이 기능은 리스트가 비어 있을 경우 유용하게 사용할 수 있습니다. 만약 리스트가 비어 있으면 오류가 발생할 수 있는데, 이를 방지하기 위해 기본값을 설정할 수 있습니다.

Python
empty_list = []
max_value = max(empty_list, default=0)
print(max_value)

비어 있는 리스트가 주어지더라도 오류가 발생하지 않고 기본값인 0이 반환됩니다.

그림 4. 파이썬 max() 함수의 기본값 파라미터

max() 사용 시 주의사항

비교 가능한 값만 사용해야 함

max() 함수는 같은 타입끼리 비교할 수 있습니다. 만약 숫자와 문자열을 함께 비교하려고 하면 오류가 발생합니다.

Python
print(max(3, "apple"))

아래와 같이 “TypeError: ‘>’ not supported between instances of ‘str’ and ‘int'” 오류 메시지를 통해서 함께 비교할 수 없음을 알려줍니다.

그림 5. 파이썬 max() 함수로 비교할 수 없는 값을 비교하면 발생하는 TypeError

key 인자 사용 시 올바른 기준을 설정

key 인자를 사용할 때 적절한 기준을 설정해야 합니다. 예를 들어, 리스트 안에 여러 요소가 있을 경우 key에 명확한 기준을 적용하지 않으면 예상치 못한 결과가 나올 수 있습니다.

default 인자를 꼭 사용할 필요는 없음

기본적으로 max() 함수는 비어 있는 시퀀스에 대해 오류를 발생시키므로, 비어 있는 리스트나 튜플이 예상되지 않는 경우에는 default 인자를 꼭 사용하지 않아도 됩니다.

정리

파이썬의 max() 함수는 가장 큰 값을 쉽게 구할 수 있도록 해주는 매우 유용한 함수입니다. 숫자나 문자열뿐만 아니라 key 인자를 활용하여 다양한 데이터 구조에서도 커스텀 정렬 기준을 적용할 수 있습니다. 또한 default 인자를 사용하면 비어 있는 리스트에서 발생할 수 있는 오류를 방지할 수 있습니다.

코드를 작성할 때 max() 함수를 적절히 활용하면 불필요한 반복 작업을 줄이고, 간결하면서도 효율적인 코드를 작성할 수 있습니다. 다양한 상황에서 max()를 활용해 더 나은 코드를 작성해 보세요!

참고자료

관련 포스트

Leave a Comment