프로그래밍언어/파이썬[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