Listas tridimensionales y sus copias
Publicado por inedit00 (2 intervenciones) el 01/07/2009 01:39:36
Nota: no se me asusten, parece largo pero se lee en un momento. Gracias por ayudar.
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:
import copy
Alguna idea? Se acepta pulpo como animal de compañía. Gracias de antemano.
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:
import copy
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#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]
#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.
Valora esta pregunta


0