Tengo un problema que no se como solucionar. El caso es que tengo una lista de tres dimensiones ( lista[][][] ), de la cual quiero hacer una copia y una modificación. Al final tiene que quedarme la lista original y la lista modificada. Bien. Que tengo? Pues el siguiente codigo para ilustrar mi problema:
Código python:
Ver original
import copy #EJEMPLO 1, QUE FUNCIONA ( per no me sirve de nada ) #Hecha la copia, si se cambia algun elemento de la lista no se modifica el original. Perfecto a=[] a =[1,2,3] b = copy.copy(a) b[0] = 'helloworld' print a print b #Resultado: #[1, 2, 3] #['helloworld', 2, 3]
Código python:
Ver original
#EJEMPLO 2, QUE NO FUNCIONA #Creamos nuestro array tridimensional de prueba. Lo imprimimos. Hacemos la copia. Cambiamos algo y volvemos a imprimir. Y que tenemos? Pues tanto el array original como su copia MODIFICADOS. m=2 count=0 c = [] for i in range(0,m): b = [] for j in range(0,m): a = [] for k in range(0,m): a.append(count) count+=1 b.append(a) c.append(b) print c d = copy.copy(c) d[0][0][0] = 'hello world' print c print d #Resultado :( #[[[0, 1], [2, 3]], [[4, 5], [6, 7]]] #[[['hello world', 1], [2, 3]], [[4, 5], [6, 7]]] <<<< :S #[[['hello world', 1], [2, 3]], [[4, 5], [6, 7]]] <<<<< :S
Alguna idea? Se acepta pulpo como animal de compañía. Gracias de antemano.