Python IndexError:목록 할당 인덱스가 범위를 벗어났습니다.

Zeeshan Afridi 2023년6월21일
  1. Python IndexError: 목록 할당 인덱스가 범위를 벗어났습니다.
  2. Python에서 IndexError: list assignment index out of range 수정
  3. IndexError: 범위를 벗어난 목록 할당 인덱스 수정 append() 기능 사용
  4. insert() 함수를 사용하여 IndexError: 목록 할당 인덱스가 범위를 벗어남 수정
  5. 결론
Python IndexError:목록 할당 인덱스가 범위를 벗어났습니다.

Python에서는 존재하지도 않는 목록의 인덱스에 액세스하려고 하면 IndexError: 범위를 벗어난 목록 할당 인덱스가 발생합니다. 인덱스는 문자열, 목록 또는 배열과 같은 iterable 내부의 값 위치입니다.

이 기사에서는 Python에서 인덱스 오류 목록 할당 인덱스가 범위를 벗어남 오류를 수정하는 방법을 배웁니다.

Python IndexError: 목록 할당 인덱스가 범위를 벗어났습니다.

오류를 이해하고 해결하기 위해 오류의 예를 보자.

코드 예:

# error program --> IndexError: list assignment index out of range
i = [7, 9, 8, 3, 7, 0]  # index range (0-5)
j = [1, 2, 3]  # index range (0-3)

print(i, "\n", j)
print(f"\nLength of i = {len(i)}\nLength of j = {len(j)}")

print(f"\nValue at index {1} of list i and j are {i[1]} and {j[1]}")
print(
    f"\nValue at index {3} of list i and j are {i[3]} and {j[3]}"
)  # error because index 3 isn't available in list j

출력:

[7, 9, 8, 3, 7, 0]
[1, 2, 3]

Length of i = 6
Length of j = 3

Value at index 1 of list i and j are 9 and 2

IndexError: list assignment index out of range

위의 코드에서 IndexError: 목록 할당 인덱스가 범위를 벗어남이 발생하는 이유는 목록 j에서 사용할 수 없는 인덱스 3의 값에 액세스하려고 하기 때문입니다.

Python에서 IndexError: list assignment index out of range 수정

이 오류를 수정하려면 이 케이스 목록에서 iterables의 인덱싱을 조정해야 합니다. 두 개의 목록이 있고 목록 a를 목록 b로 바꾸고 싶다고 가정해 보겠습니다.

코드 예:

a = [1, 2, 3, 4, 5, 6]
b = []
k = 0

for l in a:
    b[k] = l  # indexError --> because the length of b is 0
    k += 1

print(f"{a}\n{a}")

출력:

IndexError: list assignment index out of range

길이가 0이기 때문에 목록 b에 값을 할당할 수 없으며 kth 인덱스 b[k] = I에 값을 추가하려고 하므로 인덱스 오류가 발생합니다. append()insert()를 사용하여 수정할 수 있습니다.

IndexError: 범위를 벗어난 목록 할당 인덱스 수정 append() 기능 사용

append() 함수는 목록 끝에 항목(값, 문자열, 객체 등)을 추가합니다. 인덱스 두통을 관리할 필요가 없기 때문에 도움이 됩니다.

코드 예:

a = [1, 2, 3, 4, 5, 6]
b = []
k = 0

for l in a:
    # use append to add values at the end of the list
    j.append(l)
    k += 1

print(f"List a: {a}\nList b: {a}")

출력:

List a: [1, 2, 3, 4, 5, 6]
List b: [1, 2, 3, 4, 5, 6]

insert() 함수를 사용하여 IndexError: 목록 할당 인덱스가 범위를 벗어남 수정

insert() 함수는 목록의 k'th 위치에 값을 직접 삽입할 수 있습니다. insert(index, value)라는 두 개의 인수를 사용합니다.

코드 예:

a = [1, 2, 3, 5, 8, 13]
b = []
k = 0

for l in a:
    # use insert to replace list a into b
    j.insert(k, l)
    k += 1

print(f"List a: {a}\nList b: {a}")

출력:

List a: [1, 2, 3, 4, 5, 6]
List b: [1, 2, 3, 4, 5, 6]

위의 두 가지 솔루션 외에도 Python 목록을 다른 언어의 일반 배열처럼 처리하려는 경우 목록 크기를 None 값으로 미리 정의할 수 있습니다.

코드 예:

a = [1, 2, 3, 4, 5, 6]
b = [None] * len(i)

print(f"Length of a: {len(a)}")
print(f"Length of b: {len(b)}")

print(f"\n{a}\n{b}")

출력:

Length of a: 6
Length of b: 6

[1, 2, 3, 4, 5, 6]
[None, None, None, None, None, None]

더미 값 없음으로 목록을 정의한 후에는 그에 따라 사용할 수 있습니다.

결론

Python에서 IndexError: 범위를 벗어난 목록 할당 인덱스를 처리하기 위한 몇 가지 수동 기술과 논리가 더 있을 수 있습니다. 이 문서에서는 두 목록을 교체하는 동안 Python에서 인덱스 오류를 처리하는 데 도움이 되는 두 가지 일반적인 목록 함수를 간략하게 설명합니다.

또한 목록을 미리 정의하고 다른 프로그래밍 언어의 배열과 유사한 배열로 처리하는 대체 솔루션에 대해서도 논의했습니다.

Zeeshan Afridi avatar Zeeshan Afridi avatar

Zeeshan is a detail oriented software engineer that helps companies and individuals make their lives and easier with software solutions.

LinkedIn

관련 문장 - Python Error

관련 문장 - Python List