Python - cambiar lista con una funcion

 
Vista:
Imágen de perfil de Francisco Javier
Val: 249
Ha aumentado su posición en 29 puestos en Python (en relación al último mes)
Gráfica de Python

cambiar lista con una funcion

Publicado por Francisco Javier (313 intervenciones) el 29/01/2021 10:13:00
Buenos dias Comunity, a ver se supone que si creas una funcion asignadole como parámetro una lista y en dicha función cambias o modificas la lista, ésta que esta declarada fuera de la función debería de cambiar al pasarla por la función. Pues no entiendo porque no me modifica la lista.

1
2
3
4
5
6
7
8
9
10
def rotacion1(x):
             x=x[-1:]+x[:-1]
             return x
 
 
rotor1_a=['P', 'K', 'D', 'Z', 'Z', 'Y', 'T', 'Ñ', 'C', 'D', 'X', 'Q', 'R', 'E',
          'R', 'T', 'M', 'V', 'F', 'W', 'I', 'A', 'F', 'F', 'Z', 'G', 'Ñ']
 
rotacion1(rotor1_a)
print(rotor1_a)

cuando llamo a la funcion rotacion1, compruebo y con un print(rotacion1(rotor1_a) sale correcto el cambio, sin embargo al llamar a un print (rotor1_a) me vuelve a poner la lista sin el cambio y quiero que se quede modificada.
¿Cómo podría implementarlo?
Un saludo
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
Imágen de perfil de Antoni Masana
Val: 121
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

cambiar lista con una funcion

Publicado por Antoni Masana (67 intervenciones) el 29/01/2021 18:30:32
Puedes hacerlo asi:

1
2
3
4
5
6
7
def rotacion1(x):
    x=x[-1:]+x[:-1]
    return x
rotor1_a=['P', 'K', 'D', 'Z', 'Z', 'Y', 'T', 'Ñ', 'C', 'D', 'X', 'Q', 'R', 'E',
          'R', 'T', 'M', 'V', 'F', 'W', 'I', 'A', 'F', 'F', 'Z', 'G', 'Ñ']
rotor1_b = rotacion1(rotor1_a)
print(rotor1_b)

o asi

1
2
3
4
5
6
7
def rotacion1(x):
    x=x[-1:]+x[:-1]
    return x
rotor1_a=['P', 'K', 'D', 'Z', 'Z', 'Y', 'T', 'Ñ', 'C', 'D', 'X', 'Q', 'R', 'E',
          'R', 'T', 'M', 'V', 'F', 'W', 'I', 'A', 'F', 'F', 'Z', 'G', 'Ñ']
rotor1_a = rotacion1(rotor1_a)
print(rotor1_a)

Con la primera opcion tienes dos tablas en memoria, con la segunda solo una cuando hace el print()

Saludos.
\\//_
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