본문 바로가기
프로그래밍언어/파이썬[Error]

[파이썬][Error] 039. ValueError - 'x' is not in list

by about_IT 2025. 5. 27.
728x90

ValueError: 'x' is not in list 오류는 리스트에서 존재하지 않는 항목을 찾거나 제거하려고 할 때 발생합니다. list.index(x) 또는 list.remove(x)와 같은 메서드는 대상 값이 리스트에 존재하지 않으면 ValueError를 발생시킵니다.

이 오류는 조건 검색 또는 사용자 입력 기반 리스트 처리 시 자주 발생하며, 리스트 내부에 해당 값이 있는지 확인하지 않고 메서드를 사용할 때 문제가 발생합니다.

● 오류 발생 예시

fruits = ['apple', 'banana', 'cherry']
index = fruits.index('grape')

'grape'는 리스트에 없기 때문에 index() 메서드 호출 시 오류가 발생합니다.

ValueError: 'grape' is not in list

● 해결 방법

  • if x in 리스트로 존재 여부를 사전 확인
  • 예외 처리를 통해 오류 방지 (try-except 사용)

● 예시 코드

if 'grape' in fruits:
    index = fruits.index('grape')
else:
    index = -1

또는 예외 처리 방식으로 다음과 같이 작성할 수 있습니다:

try:
    index = fruits.index('grape')
except ValueError:
    index = -1

● 자주 하는 실수

  • 검색 전에 값이 리스트에 있는지 확인하지 않음
  • 입력값이 리스트에 없는 경우를 고려하지 않고 바로 index() 호출
  • 중복 요소를 제거하면서 예상치 못한 요소에 접근

● 결론

ValueError - 'x' is not in list 오류는 리스트 내부에 없는 요소에 접근하려고 할 때 발생합니다. 코드를 작성할 때 항상 리스트에 해당 값이 포함되어 있는지 확인하거나, 예외 처리 구문을 활용하여 안정적인 처리를 구현하는 것이 바람직합니다.

728x90