Ich konnte im Internet keine gute Lösung für dieses Problem finden (wahrscheinlich, weil Schalter, Position, Liste und Python solche überladenen Wörter sind).
Es ist ziemlich einfach - ich habe diese Liste:
['title', 'email', 'password2', 'password1', 'first_name', 'last_name', 'next', 'newsletter']
Ich möchte die Position von 'password2'
und wechseln 'password1'
- ohne ihre genaue Position zu kennen, nur dass sie direkt nebeneinander liegen und an password2
erster Stelle stehen.
Ich habe dies mit einem ziemlich langwierigen Listenabonnement erreicht, aber ich habe mich gefragt, ob es möglich ist, etwas eleganteres zu finden?
Antworten:
quelle
Der einfache Python-Tausch sieht folgendermaßen aus:
Jetzt müssen Sie nur noch herausfinden, was
i
ist, und das ist ganz einfach möglich mitindex
:quelle
In Anbetracht Ihrer Spezifikationen würde ich die Slice-Zuweisung verwenden:
Die rechte Seite der Slice-Zuordnung ist ein "umgekehrtes Slice" und kann auch geschrieben werden:
Wenn Sie das besser lesbar finden, würden es auch viele tun.
quelle
Wie kann es jemals länger sein als
Das ist nur ein einfacher Austausch mit temporärem Speicher.
quelle
my_list[indexOfPwd2],my_list[indexOfPwd2+1] = my_list[indexOfPwd2+1],my_list[indexOfPwd2]
Wenn das letzte Element größer als das Element an der Position
i
ist, werden beide vertauscht.quelle
Sie können zum Beispiel verwenden:
quelle
Ich bin kein Python-Experte, aber Sie könnten versuchen: sagen
oben würde o / p geben als:
quelle