이 글에서는 Python 표준 라이브러리에 포함된 min() 함수와 max() 함수에 대해 자세히 알아봅니다. 이 두 함수는 용도에 따라 무제한 개수의 인자를 받을 수 있어 매우 유연하게 활용할 수 있습니다.
기본 문법
max(arg1, arg2, arg3, ...)
반환값 — 전달된 모든 인자 중 최댓값을 반환합니다.
오류 및 예외: 인자들의 자료형이 서로 다를 경우 비교 과정에서 오류가 발생할 수 있습니다. 예를 들어 숫자와 문자열을 함께 비교하면 TypeError가 발생하므로, 같은 타입의 인자를 전달하는 것이 안전합니다.
max() 함수 사용 예제
먼저 max() 함수를 다양한 방식으로 활용하는 방법을 살펴보겠습니다.
# 전달된 인자들 중 최댓값 구하기
print("전달된 인자 중 최댓값은:" + str(max(2, 3, 4, 5, 7, 2, 1, 6)))
# 문자 인자에도 동일하게 적용됩니다
print("전달된 인자 중 최댓값은:" + str(max('m', 'z', 'a', 'b', 'e')))
# 리스트 형태의 인자도 받을 수 있습니다
l = [22, 45, 1, 7, 3, 2, 9]
print("리스트의 최댓값은:" + str(max(l)))
# 튜플 형태의 인자도 받을 수 있습니다
l = (22, 45, 1, 7, 71, 91, 3, 2, 9)
print("튜플의 최댓값은:" + str(max(l)))실행 결과
전달된 인자 중 최댓값은:7 전달된 인자 중 최댓값은:z 리스트의 최댓값은:45 튜플의 최댓값은:91
위 결과에서 확인할 수 있듯이, max() 함수를 사용하면 별도의 비교 연산 없이 인자들 사이의 최댓값을 바로 얻을 수 있습니다. 문자 인자의 경우 사전순(유니코드) 기준으로 비교가 이루어진다는 점도 눈여겨볼 만합니다.
min() 함수 사용 예제
마찬가지 방식으로 min() 함수도 활용해 보겠습니다.
# 전달된 인자들 중 최솟값 구하기
print("전달된 인자 중 최솟값은:" + str(min(2, 3, 4, 5, 7, 2, 1, 6)))
# 문자 인자에도 동일하게 적용됩니다
print("전달된 인자 중 최솟값은:" + str(min('m', 'z', 'a', 'b', 'e')))
# 리스트 형태의 인자도 받을 수 있습니다
l = [22, 45, 1, 7, 3, 2, 9]
print("리스트의 최솟값은:" + str(min(l)))
# 튜플 형태의 인자도 받을 수 있습니다
l = (22, 45, 1, 7, 71, 91, 3, 2, 9)
print("튜플의 최솟값은:" + str(min(l)))실행 결과
전달된 인자 중 최솟값은:1 전달된 인자 중 최솟값은:a 리스트의 최솟값은:1 튜플의 최솟값은:1
추가 팁: key 매개변수 활용하기
min()과 max() 함수는 key 매개변수를 지원하여 더욱 강력한 비교 로직을 구현할 수 있습니다. 예를 들어 문자열 길이를 기준으로 최댓값을 찾거나, 딕셔너리의 특정 값을 기준으로 비교할 수 있습니다.
# 문자열 길이가 가장 긴 요소 찾기 words = ['apple', 'banana', 'kiwi'] print(max(words, key=len)) # 출력: banana # 절댓값 기준으로 최솟값 찾기 nums = [-5, 3, -1, 8] print(min(nums, key=abs)) # 출력: -1
마무리
이 글에서는 Python 표준 라이브러리에 포함된 max()와 min() 함수의 구현 방법을 학습했습니다. 이러한 내장 함수를 활용하면 직접 비교 로직을 작성하지 않고도 최댓값과 최솟값을 손쉽게 구할 수 있으며, 코드의 가독성과 효율성 또한 크게 향상됩니다. 반복문과 조건문으로 일일이 비교하는 대신, 내장 함수를 적극적으로 활용해 보시기 바랍니다.