Mutación de lista inesperada
Al crear una lista como v = [0,0,0,0,0,0,0,0 ,0], podría asumir que asignar una nueva lista a una variable crea una referencia separada. Sin embargo, código como el siguiente puede demostrar un comportamiento inesperado:
vec = v
vec[5] = 5
Tanto vec como v ahora contienen el valor 5 en el índice 5. ¿Por qué sucede esto?
Asignación de referencia
En Python, las listas son objetos mutables. Asignar vec = v no crea una nueva copia de la lista. En su lugar, asigna una referencia a v. Tanto vec como v apuntan al mismo objeto de lista subyacente en la memoria.
Cualquier modificación realizada en vec o v afectará la lista original porque son la misma lista. Es por eso que cuando se cambia vec[5], v también cambia.
Solución
Para crear una copia separada de la lista, use la función list():
vec = list(v)
Esto crea un nuevo objeto de lista que contiene una copia de los elementos de v. Cualquier cambio realizado en vec no afectará a v, y viceversa. .
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3