Python에서 “tuple index out of range”라는 오류는 무엇을 의미합니까?


Best answer

Good Evening,

다행히 안전한 개체를 구현하는 일부 언어 비록 파이썬에서 많이 알지는 못하지만 우리는 접근하는 객체가 범위 검사를한다고 가정 할 수 있습니다.

이 매우 간단한 문장에서 이해할 수있는 것은 파이썬이 기본의 일부에서 객체를 생성한다는 것입니다. 데이터 유형을 지정하고 필요에 따라 접근자를 암묵적으로 호출하고 변환 및 범위 검사, 변환 등을 수행하므로 논리적 오류가 있습니다. 범위를 벗어난 튜플에 액세스 한 이유를 확인하십시오. 코드에 인덱스 오류가 있음 및 / 또는 튜플 크기.

다른 언어가 허용하는 작업에서 더 관대하다는 것을 나타내는 메모입니다. 그러면 런타임 오류가 발생합니다. 범위를 벗어난 액세스는 의도하지 않은 데이터를 읽고 다른 개체의 메모리에도 쓸 수 있으므로 데이터가 손상되어 결국 데이터 손실 또는 실행 ti가 발생합니다. 나 충돌합니다.

감사합니다

Jean-François

Answer

python 목록은 변경 가능하므로 크기가 고정되지 않습니다.

크기가 고정되어 있지 않기 때문에

목록에 할당 된 값을 기반으로 python 메모리 관리-내부적으로 0, 4의 성장 패턴으로 목록 (사용 가능한 색인)을 생성합니다. , 8, 16, 25, 35, 46, 58, 72, 88,… realloc ()을 여러 번 호출하는 대신.

하지만 목록에 할당 된 값은 list ( 사용 가능한 색인).

목록의 경우 사용 가능한 색인 > 할당 된 색인

비어 있음 또는 없음 에 액세스하려는 경우 목록의 사용 가능한 색인을 가리키면 “ 목록 색인이 범위를 벗어남 오류”가 표시됩니다.

python을 열고 손을 더럽 힙니다. 일과 함께 이해를 돕기 위해 코드 아래에 있습니다.

> x = list ( 1234)

>> x

[ 1, 2, 3, 4]

>> 길이 = len (x)

4

>> x [length ]

색인 오류 : 목록 색인이 범위를 벗어남

참고 : 목록 색인은 0부터 시작합니다.

하지만 여기서 길이는 4입니다.

위 목록의 할당은 다음과 같습니다.

x [0] = 1

x [1] = 2

x [2] = 3

x [3] = 4

x [4] =?

인 x [4]에 액세스하려는 경우 존재하지 않음 , 목록 색인이 범위를 벗어납니다.

목록이 내부적으로 메모리를 할당하는 방법을 더 잘 이해하려면이 링크를 참조하세요. Python 목록 구현 .

감사합니다 !!!

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다