프로그래밍언어/파이썬[Error]
[파이썬][Error] 036. ValueError - max() arg is an empty sequence
about_IT
2025. 5. 27. 21:11
728x90
ValueError: max() arg is an empty sequence
오류는 max()
함수를 호출할 때 인자로 전달된 시퀀스(예: 리스트, 튜플 등)가 비어 있는 경우 발생합니다. max()
는 비교할 대상이 하나 이상 있어야 동작할 수 있기 때문에, 빈 시퀀스에서는 최대값을 결정할 수 없어 이 오류가 발생합니다.
이 오류는 필터링, 조건 검색, 사용자 입력 기반 데이터 처리에서 빈 리스트가 생성되었음에도 불구하고 이를 확인하지 않고 max()
를 호출할 때 자주 발생합니다.
● 오류 발생 예시
numbers = []
print(max(numbers))
리스트가 비어 있어 최대값을 계산할 수 없기 때문에 오류가 발생합니다.
ValueError: max() arg is an empty sequence
● 해결 방법
if
조건문으로 시퀀스가 비어 있는지 확인 후max()
호출- 빈 시퀀스일 때 사용할 기본값을 함께 지정하는 방법 (
default
인자 사용)
● 예시 코드
numbers = []
if numbers:
print(max(numbers))
else:
print("최대값 없음")
# Python 3.4 이상
print(max(numbers, default=0))
● 자주 하는 실수
- 검색 조건이 맞지 않아 비어 있는 결과에서 최대값 계산 시도
- 사용자 입력이 없을 수 있다는 가능성을 고려하지 않음
- 초기화된 빈 리스트에 대해 무조건
max()
호출
● 결론
ValueError - max() arg is an empty sequence
오류는 빈 시퀀스를 대상으로 max()
를 호출했을 때 발생합니다. 데이터가 비어 있을 수 있다는 가능성을 항상 고려하고, if 시퀀스:
또는 default
인자를 사용하는 방식으로 방어적인 코드를 작성하는 것이 중요합니다.
728x90