Python - Clonar una Matriz

 
Vista:

Clonar una Matriz

Publicado por Luis (9 intervenciones) el 21/03/2010 14:02:12
Hola a todos: Quiero clonar un matriz y no me sale.

Tengo Ini=[[1,2,3], [4,7,6], [5,0,8]]
Hago cop=Ini[:] que según he leído clona una lista

Pero si modifico cualquier elemento de cop, tambíen lo modifica en Ini.

Alguien sabe la sentencia adecuada?

Muchas gracias a todos.

Luis...
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Clonar una Matriz

Publicado por Cyrus (12 intervenciones) el 21/03/2010 16:02:01
la solucion es usar copy, te pongo aqui un ejemlpo:

1
2
3
4
5
6
7
8
9
10
>>> import copy
>>> listOne = [{"name": "Willie", "city": "Providence, RI"}, 1, "tomato", 3.0]
>>> listTwo = listOne[:]                   # or listTwo=copy.copy(listOne)
>>> listThree = copy.deepcopy(listOne)
>>> listOne.append("kid")
>>> listOne[0]["city"] = "San Francisco, CA"
>>> print listOne, listTwo, listThree
[{'name': 'Willie', 'city': 'San Francisco, CA'}, 1, 'tomato', 3.0, 'kid']
[{'name': 'Willie', 'city': 'San Francisco, CA'}, 1, 'tomato', 3.0]
[{'name': 'Willie', 'city': 'Providence, RI'}, 1, 'tomato', 3.0]

Para más informacion : http://oreilly.com/catalog/lpython/chapter/ch09.html
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Clonar una Matriz

Publicado por leo (15 intervenciones) el 08/04/2010 06:48:12
exacto, te lo dijo cyrus.

1
2
3
4
5
6
7
8
9
10
import copy
 
l=[[1,2,3],[4,5,6],[7,8,9]]
 
clon=copy.deepcopy(l)
 
clon[0][0]=0
 
print l
print clon
SALIDA:

1
2
[[1,2,3],[4,5,6],[7,8,9]]
[[0,2,3],[4,5,6],[7,8,9]]

que tengas suerte con esto!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar