Mutação inesperada da lista
Ao criar uma lista como v = [0,0,0,0,0,0,0,0 ,0], você pode assumir que atribuir uma nova lista a uma variável cria uma referência separada. No entanto, códigos como o seguinte podem demonstrar um comportamento inesperado:
vec = v
vec[5] = 5
Ambos vec e v agora contêm o valor 5 no índice 5. Por que isso acontece?
Atribuição de referência
Em Python, listas são objetos mutáveis. Atribuir vec = v não cria uma nova cópia da lista. Em vez disso, ele atribui uma referência a v. Ambos vec e v apontam para o mesmo objeto de lista subjacente na memória.
Qualquer modificação feita em vec ou v afetará a lista original porque são a mesma lista. É por isso que quando vec[5] é alterado, v também muda.
Solução
Para criar uma cópia separada da lista, use a função list():
vec = list(v)
Isso cria um novo objeto de lista que contém uma cópia dos elementos de v. Quaisquer alterações feitas em vec não afetarão v e vice-versa .
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3