Python - Secuencia python

 
Vista:

Secuencia python

Publicado por Eva (2 intervenciones) el 25/06/2015 14:59:52
Buenas tardes,

Estoy intentando crear un programa en el que a partir de una secuencia dada, se añada el siguiente numero en las posiciones intermedias. De manera que si me dan la secuencia [0,2,1,3] devuelva los resultados [0,4,2,1,3], [0,2,4,1,3] y [0,2,1,4,3].

A continuación os copio el programa y os explico dónde tengo el problema:


ll=[[None for i in range (4)] for j in range (4)]

ll[0]=[0,2,1,3]
aux=ll[0]
w=1
t=len(ll[0])
q=t
j=1
while j<t:
ll[w]=aux
ll[w].insert(j,q)
j=j+1
w=w+1
q=q+1

print(ll)

Mi problema es que no consigo que el valor de la variable "aux", a la que asigno el valor de la secuencia inicial, se mantenga constante y no varie a medida que se va añadiendo el nuevo valor. Esto provoca que el resultado que devuelve el programa no sea correcto. (Devuelve:[[0, 4, 4, 4, 2, 1, 3], [0, 4, 4, 4, 2, 1, 3], [0, 4, 4, 4, 2, 1, 3], [0, 4, 4, 4, 2, 1, 3]])

En cambio, si en lugar de usar la variable "aux" igualo ll[w] directamente a la secuencia (ll[w]=[0,2,1,3]) el programa funciona sin problemas. (Devuelve: [[0, 2, 1, 3], [0, 4, 2, 1, 3], [0, 2, 4, 1, 3], [0, 2, 1, 4, 3]])

¿Sabe alguien como conseguir que la variable "aux" se mantenga constante y no se alteren los valores de ll[0]?

Muchas gracias!
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