¿Cómo barajar una lista copiada sin barajar la lista original?

Estoy usando python y quiero mezclar una lista copiada que escribo después en un archivo txt (vea mi código a continuación).

¿Por qué la función aleatoria también aleatoriza la lista original? Solo uso la copia para la llamada a la función.

¿Algunas ideas? Gracias !

from random import shuffle def shuffleList2txt(myList): shuffle(myList) f = open('randList.txt','w') f.write(str(liste)) f.close() return(myList) liste = [1,2,3,4,5,6,7,8,9,10] copy = liste shuffledList = shuffleList2txt(copy) 

liste y shuffledList son lo mismo! ¿Por qué? liste debe ser el original y shuffledList debe ser shuffled list …. 🙂

random.shuffle funciona en su lugar. Por supuesto, puede hacer una copia de la lista antes de barajar, pero sería mejor que lo random.sample con random.sample , tomando una muestra … de toda la lista:

 >>> l = [1,2,3,4] >>> random.sample(l,len(l)) [3, 1, 2, 4] >>> l [1, 2, 3, 4] 

por lo tanto, si asigna el resultado de random.sample obtendrá una nueva lista random.sample sin cambiar la lista original.