본문 바로가기
컴퓨터 이야기

파이썬 IndexError: list index out of range [해결 총정리]

by 둔산동포크레인 2023. 7. 16.
반응형

다음은 몇 가지 "IndexError" 예시와 해결 방안에 대한 설명입니다:

1. 인덱스 범위 초과 예시:
  
   my_list = [1, 2, 3]
   print(my_list[3])  # IndexError: list index out of range


   - 해결 방안: 이 경우, 인덱스가 리스트의 유효한 범위를 벗어나기 때문에 발생합니다. 리스트의 유효한 인덱스 범위는 0부터 `len(my_list) - 1`까지입니다. 따라서 인덱스를 다시 확인하여 유효한 범위 내에 있는지 확인해야 합니다. 예를 들어, `len(my_list)`를 사용하여 리스트의 길이를 확인한 다음, 유효한 인덱스 범위 내에서만 인덱스에 접근하도록 조건문을 추가할 수 있습니다.

2. 음수 인덱스 예시:
   ```python
   my_string = "Hello"
   print(my_string[-6])  # IndexError: string index out of range
   ```

   - 해결 방안: 음수 인덱스는 시퀀스의 끝에서부터 역순으로 접근하는 것을 의미합니다. 음수 인덱스는 -1부터 시작하며, 끝에서부터 -1, -2, -3과 같이 순차적으로 감소합니다. 따라서 음수 인덱스를 사용할 때에도 유효한 범위 내에 있는지 확인해야 합니다. 음수 인덱스의 경우, -1은 가장 마지막 요소를 가리키며, 유효한 범위를 벗어난 경우에는 IndexError가 발생합니다.

3. 빈 시퀀스 예시:
   ```python
   my_list = []
   print(my_list[0])  # IndexError: list index out of range
   ```

   - 해결 방안: 빈 리스트나 빈 시퀀스에 접근하면 IndexError가 발생합니다. 이를 해결하기 위해서는 먼저 해당 시퀀스가 비어 있는지 확인해야 합니다. 비어 있지 않은 경우에만 인덱스에 접근하도록 조건문을 추가할 수 있습니다. 예를 들어, `if len(my_list) > 0:`과 같은 조건을 사용하여 접근 전에 리스트가 비어 있는지 확인할 수 있습니다.

4. 다차원 시퀀스에서의 인덱스 초과 예시:
   ```python
   my_list = [[1, 2], [3, 4]]
   print(my_list[2][0])  # IndexError: list index out of range
   ```

   - 해결 방안: 다차원 시퀀스에서 인덱스에 접근할 때, 각 차원의 범위를 벗어나는 경우 IndexError가 발생합니다. 이를 해결하기 위해서는 각 차원의 범위를 확인하여 유효한 인덱스에 접근하도록 조건문을 추가해야 합니다. 예를 들어, 다차원 리스트의 인덱스에 접근하기 전에 각 차원의 길이를 확인하여 유효한 범위 내에 있는지 확인할 수 있습니다.

각각의 IndexError 예시에 대한 해결 방안은 해당 오류가 발생한 상황에 따라 달라질 수 있습니다. 오류 메시지를 주의 깊게 확인하고, 유효한 인덱스 범위를 고려하여 접근하도록 코드를 수정해야 합니다.

반응형