estoy tratando de modificar una lista y ya que mis modificaciones estaban recibiendo un poco complicado y mi lista grande Tomé un trozo de mi lista usando el siguiente códigoSi cortar no crea una copia de una lista ni lista() ¿cómo puedo obtener una copia real de mi lista?
tempList=origList[0:10]
for item in tempList:
item[-1].insert(0 , item[1])
del item[1]
hice esta forma de pensar que todas las modificaciones a la lista afectaría a los objetos tempList y no a los objetos origList.
Bueno, una vez que obtuve mi código correcto y lo ejecuté en mi lista original, los primeros diez elementos (indexados 0-9) se vieron afectados por mi manipulación al probar el código impreso anteriormente.
Así que lo busqué en Google y encuentro referencias que dicen que al tomar una porción se copia la lista y se crea una nueva. También encontré código que me ayudó a encontrar la identificación de los artículos, así que creé mi origList desde cero, obtuve los identificadores de los primeros diez artículos. Corté la lista de nuevo y descubrí que los identificadores de las divisiones coincidían con los ID de los primeros diez ítems de la lista original.
me pareció más notas que sugerían una forma más Pythonic para copiar una lista sería utilizar
tempList=list(origList([0:10])
lo he intentado y me sigue pareciendo que los identificadores de la tempList coinciden con los identificadores de la origList.
Por favor, no hay mejores formas de hacer la codificación-Voy a encontrar la manera de hacer esto en una lista por comprensión por mi cuenta después de que entiendo lo cómo funciona la copia
Sobre la base de la respuesta de Kai la correcta método es:
import copy
tempList=copy.deepcopy(origList[0:10])
id(origList[0])
>>>>42980096
id(tempList[0])
>>>>42714136
funciona como un encanto
Muy útil-google surgió con profundo versus poco profundo de inmediato. Gracias. – PyNEwbie