Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Python 내장 함수 min()과 max() 완벽 정리: 문법부터 실전 예제까지

이 글에서는 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() 함수의 구현 방법을 학습했습니다. 이러한 내장 함수를 활용하면 직접 비교 로직을 작성하지 않고도 최댓값과 최솟값을 손쉽게 구할 수 있으며, 코드의 가독성과 효율성 또한 크게 향상됩니다. 반복문과 조건문으로 일일이 비교하는 대신, 내장 함수를 적극적으로 활용해 보시기 바랍니다.