본문 바로가기

프로그래밍 언어/파이썬

파이썬 리스트에서 발생하는 오류와 해결법

파이썬 리스트에서 발생하는 오류와 해결법

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

 

 

목차

  1. IndexError: 리스트 인덱스 초과
  2. TypeError: 잘못된 자료형 사용
  3. ValueError: 리스트에서 값 찾기 오류
  4. AttributeError: 잘못된 메서드 사용
  5. KeyError: 리스트에서 발생하는 키 오류
  6. MemoryError: 리스트 크기 초과
  7. 기타 흔한 리스트 관련 오류

 

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 잘못된 문법으로 리스트를 생성할 때 발생

 

결론

파이썬 리스트는 강력한 기능을 제공하지만, 사용 시 다양한 오류가 발생할 수 있습니다. 이 글에서 소개한 오류 유형과 해결 방법을 숙지하면 보다 안전한 코드 작성을 할 수 있습니다.