Nie udało mi się znaleźć dobrego rozwiązania tego problemu w sieci (prawdopodobnie dlatego, że przełącznik, pozycja, lista i Python to takie przeciążone słowa).
To raczej proste - mam tę listę:
['title', 'email', 'password2', 'password1', 'first_name', 'last_name', 'next', 'newsletter']
Chciałbym zmienić pozycję 'password2'
i 'password1'
- nie znając ich dokładnej pozycji, tyle tylko, że są tuż obok siebie i password2
są pierwsi.
Osiągnąłem to z dość długim indeksowaniem list, ale zastanawiałem się, czy można wymyślić coś bardziej eleganckiego?
Odpowiedzi:
źródło
Prosta zamiana Pythona wygląda następująco:
Teraz wszystko, co musisz zrobić, to dowiedzieć się, co
i
jest, i można to łatwo zrobić za pomocąindex
:źródło
Biorąc pod uwagę twoje specyfikacje, użyłbym przypisania plasterka:
Prawa strona przypisania plasterka jest „odwróconym plasterkiem” i może być również pisana:
jeśli uznasz to za bardziej czytelne, tak jak wielu.
źródło
Jak to może być kiedykolwiek dłuższe niż
To zwykła zamiana przy użyciu tymczasowego magazynu.
źródło
my_list[indexOfPwd2],my_list[indexOfPwd2+1] = my_list[indexOfPwd2+1],my_list[indexOfPwd2]
w wyniku tego, jeśli ostatni element jest większy niż element w pozycji,
i
wówczas oba zostaną zamienione.źródło
możesz użyć na przykład:
źródło
Nie jestem ekspertem w pythonie, ale możesz spróbować: powiedz
powyżej dałoby o / p jako:
źródło