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
'프로그래밍언어 > 파이썬[Error]' 카테고리의 다른 글
[파이썬][Error] 043. KeyError - 'missing_key' (0) | 2025.05.28 |
---|---|
[파이썬][Error] 042. IndexError - pop from empty list (0) | 2025.05.28 |
[파이썬][Error] 038. ValueError - int() base must be >= 2 and <= 36 (0) | 2025.05.27 |
[파이썬][Error] 037. ValueError - math domain error (0) | 2025.05.27 |
[파이썬][Error] 036. ValueError - max() arg is an empty sequence (0) | 2025.05.27 |