Melhor resposta
Boa noite,
Algumas linguagens felizmente implementam objeto seguro acesso, embora eu não saiba muito em Python, podemos presumir que o objeto que você acessa tem verificação de intervalo.
O que podemos entender a partir dessa instrução muito simples é que o Python cria objetos em alguns de seus tipos de dados e implicitamente chama seus acessadores conforme necessário, transformações e verificação de intervalo, conversões e assim por diante, então você tem um erro lógico aí, verifique por que você acessou uma tupla fora de seu intervalo, aparentemente o código tem algum erro no índice e / ou tamanho da tupla.
Essa é uma nota para indicar que outras linguagens são mais tolerantes no que permitem que você faça, o que resulta no chamado erro de tempo de execução, pois o acesso fora do intervalo significa que você ler dados não intencionais e pode gravar na memória de outro objeto também e, portanto, corromper os dados, resultando em perda de dados ou execução de ti me travar.
Atenciosamente
Jean-François
Resposta
Na lista python é mutável, então o tamanho não é fixo.
Devido ao tamanho não é fixo
Com base nos valores atribuídos por você para uma lista, gerenciamento de memória python – cria internamente a lista (índice disponível) no padrão de crescimento de 0, 4 , 8, 16, 25, 35, 46, 58, 72, 88,… em vez de chamar realloc () muitas vezes.
Mas os valores atribuídos a uma lista são menores do que a lista ( índice disponível).
Então, para uma lista, o índice disponível > índice atribuído.
Se você tentar acessar o vazio ou Nenhum elemento por apontando o índice disponível da lista, então você obterá o “ Erro de índice da lista fora do alcance”.
abra o python e suja as mãos com Th está abaixo do código, para ter um melhor entendimento.
>> x = list (1234)
>> x
[1, 2, 3, 4]
>> length = len (x)
4
>> x [comprimento ]
Erro de índice: índice de lista fora do intervalo
NOTA: O índice da lista começa do zero (0).
Mas aqui o comprimento é quatro.
A atribuição da lista acima é como:
x [0] = 1
x [1] = 2
x [2] = 3
x [3] = 4
x [4] =?
Se você tentar acessar o x [4] que é Inexistente , o índice da lista sairá do intervalo.
Para uma melhor compreensão de como as listas alocam memória internamente, consulte este link Lista Python implementação .
Obrigado !!!