파이썬 max() 내장 함수는 가장 큰 값을 찾는 작업을 쉽게 처리할 수 있습니다. 이 포스팅에서는 max()
함수의 기본적인 사용법부터, 다양한 활용 방법을 설명하고, 주의할 점도 함께 다루겠습니다.
목차
파이썬 max() 함수란?
max()
함수는 리스트, 튜플 등 반복 가능한(iterable) 데이터에서 가장 큰 값을 찾아주는 함수입니다. 즉, 여러 값 중에서 가장 큰 값을 쉽게 구할 수 있습니다. 기본적인 사용법은 다음과 같습니다.
max(1, 3, 2)
위 코드에서는 1, 3, 2
라는 숫자들 중에서 가장 큰 값인 3
이 반환됩니다.
max() 함수의 기본 사용법
리스트나 튜플에서 사용
리스트와 같은 데이터 구조에서 max()
를 사용하면 해당 리스트에서 가장 큰 값이 반환됩니다.
numbers = [3, 4, 1, 9, 6]
print(max(numbers))
이 예시에서는 numbers
라는 리스트에서 가장 큰 값인 9
가 반환됩니다.
여러 개의 인자를 직접 전달
max()
함수는 여러 개의 인자를 직접 전달받아 처리할 수도 있습니다.
print(max(3, 5, 7))
여러 인자를 직접 넣었을 때도 가장 큰 값이 반환됩니다. 이 경우도 리스트나 튜플을 사용하는 것과 마찬가지로 쉽게 큰 값인 7을 찾을 수 있습니다.
문자열에서의 max()
파이썬에서 max()
함수는 숫자뿐만 아니라 문자열에서도 사용할 수 있습니다. 이때는 문자열의 각 문자의 유니코드 값을 기준으로 가장 큰 값이 결정됩니다. 예를 들어, 문자열에서 가장 큰 문자를 구하는 코드는 다음과 같습니다.
print(max("hello"))
여기서 유니코드 값이 가장 큰 문자인 'o'
가 반환됩니다.
key 파라미터를 이용한 커스텀 정렬
max()
함수는 단순히 숫자나 문자열만 비교하는 것이 아니라, key
라는 인자를 활용하여 다양한 데이터 구조에서 원하는 방식으로 최대 값을 구할 수 있습니다.
예시1: 리스트 안에 있는 딕셔너리에서 특정 키 값 비교
리스트 안에 딕셔너리가 여러 개 있을 때, 각 딕셔너리의 특정 값을 기준으로 가장 큰 값을 구할 수 있습니다.
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: 문자열 길이 비교
문자열의 길이를 기준으로 가장 긴 문자열을 구할 수도 있습니다.
words = ["apple", "banana", "cherry", "blueberry"]
longest_word = max(words, key=len)
print(longest_word)
key=len
을 사용하여 문자열의 길이를 기준으로 가장 긴 단어를 찾아냅니다.
max() 함수의 숨겨진 기능: default 파라미터
파이썬 3.4 버전 이후로, max()
함수는 default
라는 파라미터를 받을 수 있습니다. 이 기능은 리스트가 비어 있을 경우 유용하게 사용할 수 있습니다. 만약 리스트가 비어 있으면 오류가 발생할 수 있는데, 이를 방지하기 위해 기본값을 설정할 수 있습니다.
empty_list = []
max_value = max(empty_list, default=0)
print(max_value)
비어 있는 리스트가 주어지더라도 오류가 발생하지 않고 기본값인 0
이 반환됩니다.
max() 사용 시 주의사항
비교 가능한 값만 사용해야 함
max()
함수는 같은 타입끼리 비교할 수 있습니다. 만약 숫자와 문자열을 함께 비교하려고 하면 오류가 발생합니다.
print(max(3, "apple"))
아래와 같이 “TypeError: ‘>’ not supported between instances of ‘str’ and ‘int'” 오류 메시지를 통해서 함께 비교할 수 없음을 알려줍니다.
key 인자 사용 시 올바른 기준을 설정
key
인자를 사용할 때 적절한 기준을 설정해야 합니다. 예를 들어, 리스트 안에 여러 요소가 있을 경우 key
에 명확한 기준을 적용하지 않으면 예상치 못한 결과가 나올 수 있습니다.
default 인자를 꼭 사용할 필요는 없음
기본적으로 max()
함수는 비어 있는 시퀀스에 대해 오류를 발생시키므로, 비어 있는 리스트나 튜플이 예상되지 않는 경우에는 default
인자를 꼭 사용하지 않아도 됩니다.
정리
파이썬의 max()
함수는 가장 큰 값을 쉽게 구할 수 있도록 해주는 매우 유용한 함수입니다. 숫자나 문자열뿐만 아니라 key
인자를 활용하여 다양한 데이터 구조에서도 커스텀 정렬 기준을 적용할 수 있습니다. 또한 default
인자를 사용하면 비어 있는 리스트에서 발생할 수 있는 오류를 방지할 수 있습니다.
코드를 작성할 때 max()
함수를 적절히 활용하면 불필요한 반복 작업을 줄이고, 간결하면서도 효율적인 코드를 작성할 수 있습니다. 다양한 상황에서 max()
를 활용해 더 나은 코드를 작성해 보세요!