No he podido encontrar una buena solución para este problema en la red (probablemente porque interruptor, posición, lista y Python son palabras tan sobrecargadas).
Es bastante simple: tengo esta lista:
['title', 'email', 'password2', 'password1', 'first_name', 'last_name', 'next', 'newsletter']
Me gustaría cambiar la posición de 'password2'
y 'password1'
, sin saber su posición exacta, solo que están uno al lado del otro y password2
son los primeros.
He logrado esto con algunos suscriptores de lista bastante largos, pero me preguntaba si es posible llegar a algo un poco más elegante.
Respuestas:
fuente
El simple intercambio de Python se ve así:
Ahora todo lo que necesita hacer es calcular qué
i
es, y eso se puede hacer fácilmente conindex
:fuente
Dadas sus especificaciones, usaría la asignación de corte:
El lado derecho de la asignación de corte es un "corte invertido" y también podría escribirse:
si lo encuentra más legible, como muchos lo harían.
fuente
¿Cómo puede ser más largo que
Eso es solo un intercambio simple usando almacenamiento temporal.
fuente
my_list[indexOfPwd2],my_list[indexOfPwd2+1] = my_list[indexOfPwd2+1],my_list[indexOfPwd2]
Como resultado de esto, si el último elemento es mayor que el elemento en la posición
i
, ambos se intercambian.fuente
puedes usar por ejemplo:
fuente
No soy un experto en python, pero podrías intentar: decir
arriba daría o / p como:
fuente