파이썬 리스트에서 발생하는 오류와 해결법
파이썬의 리스트(list)는 가장 강력하면서도 유용한 자료구조 중 하나입니다. 하지만 리스트를 사용할 때 흔히 발생하는 오류들이 있습니다. 이 글에서는 리스트에서 발생하는 주요 오류를 분석하고, 이를 해결하는 방법을 상세히 설명합니다.

목차
- IndexError: 리스트 인덱스 초과
- TypeError: 잘못된 자료형 사용
- ValueError: 리스트에서 값 찾기 오류
- AttributeError: 잘못된 메서드 사용
- KeyError: 리스트에서 발생하는 키 오류
- MemoryError: 리스트 크기 초과
- 기타 흔한 리스트 관련 오류
1. IndexError: 리스트 인덱스 초과
리스트의 특정 인덱스에 접근할 때 범위를 벗어나면 발생하는 오류입니다.
📌 예제
numbers = [1, 2, 3]
print(numbers[3]) # IndexError 발생
✅ 해결 방법
- 리스트 길이를 초과하지 않도록 인덱스를 확인
- 반복문에서
len()함수를 활용하여 범위 조절
numbers = [1, 2, 3]
if len(numbers) > 3:
print(numbers[3])
else:
print("인덱스 초과 방지!")
2. TypeError: 잘못된 자료형 사용
리스트에서 숫자와 문자열을 혼합하여 연산하려 할 때 발생합니다.
📌 예제
numbers = [1, 2, 3]
print(numbers + "abc") # TypeError 발생
✅ 해결 방법
- 문자열과 리스트를 연결할 경우
str()변환 활용
numbers = [1, 2, 3]
print(numbers + list("abc")) # 정상 작동
3. ValueError: 리스트에서 값 찾기 오류
리스트에서 존재하지 않는 값을 찾으려 하면 발생하는 오류입니다.
📌 예제
numbers = [1, 2, 3]
print(numbers.index(4)) # ValueError 발생
✅ 해결 방법
in연산자로 값이 존재하는지 먼저 확인
numbers = [1, 2, 3]
if 4 in numbers:
print(numbers.index(4))
else:
print("값이 리스트에 없음")
4. AttributeError: 잘못된 메서드 사용
리스트에서 지원하지 않는 메서드를 호출할 때 발생합니다.
📌 예제
numbers = [1, 2, 3]
numbers.append(4).sort() # AttributeError 발생
✅ 해결 방법
- 리스트 메서드는 반환값이
None이므로, 연속 호출을 피해야 합니다.
numbers = [1, 2, 3]
numbers.append(4)
numbers.sort()

5. KeyError: 리스트에서 발생하는 키 오류
리스트는 키-값 구조가 아니므로, 딕셔너리처럼 접근하면 오류가 발생합니다.
📌 예제
numbers = [1, 2, 3]
print(numbers["first"]) # KeyError 발생
✅ 해결 방법
- 딕셔너리를 사용하거나 리스트의 인덱스로 접근
numbers = {"first": 1, "second": 2}
print(numbers["first"]) # 정상 작동
6. MemoryError: 리스트 크기 초과
너무 큰 리스트를 생성하면 메모리가 부족하여 발생하는 오류입니다.
📌 예제
big_list = [0] * (10**9) # MemoryError 발생 가능
✅ 해결 방법
- 제너레이터(
yield)나range()활용
def generate_numbers(n):
for i in range(n):
yield i
gen = generate_numbers(10**9) # 메모리 효율적
7. 기타 흔한 리스트 관련 오류
리스트에서 자주 발생하는 오류들을 정리했습니다.
| 오류 유형 | 설명 |
|---|---|
| ZeroDivisionError | 리스트의 요소를 0으로 나누려고 할 때 발생 |
| RecursionError | 리스트를 무한 재귀 호출하는 경우 발생 |
| SyntaxError | 잘못된 문법으로 리스트를 생성할 때 발생 |
결론
파이썬 리스트는 강력한 기능을 제공하지만, 사용 시 다양한 오류가 발생할 수 있습니다. 이 글에서 소개한 오류 유형과 해결 방법을 숙지하면 보다 안전한 코드 작성을 할 수 있습니다.
'프로그래밍 언어 > 파이썬' 카테고리의 다른 글
| Python complex 객체, 실수와 허수의 조화 이해하기 (0) | 2025.03.30 |
|---|---|
| Python str의 불변성, 메모리와 성능 이해하기 (0) | 2025.03.24 |
| Python의 bool 데이터 타입, 내부 작동 방식과 사례 (0) | 2025.03.12 |
| 파이썬 복소수, complex 타입과 활용법 (0) | 2025.03.06 |
| Python str 데이터 타입, 포매팅과 인코딩 기법 (0) | 2025.02.28 |