Pergunta

Eu li sobre as semelhanças entre a lista Python e o vetor C ++ e parece que a única diferença é a lista de Python é heterogênea.Há outras diferenças lá?Como ambos são implementados?

Foi útil?

Solução

A lista Python e o vetor C ++ são implementadas como matrizes dinâmicas ( https://en.wikipedia.org/ wiki / dynamic_array ). (Essencialmente matrizes que são realocados quando são muito pequenos.) Agora, a importante diferença entre a versão Python e C ++ não vem das próprias estruturas de dados, mas sim do idioma.Em C ++, você pode armazenar estruturas, pontas de dados primitivos, etc. em um vetor.Mas no Python tudo é um ponteiro no sentido de que um e.Um inteiro é armazenado no heap e tem uma anotação anexada a ela que diz "Eu sou um inteiro".Isso é obrigatório porque o Python tem um sistema de tipo dinâmico.E os elementos armazenados na lista são apenas ponteiros para os elementos reais.Este mecanismo também permite que o Python armazene diferentes tipos de dados na mesma lista.Esta é outra razão pela qual Python é meio lento.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a cs.stackexchange
scroll top