Saya belum dapat menemukan solusi yang baik untuk masalah ini di internet (mungkin karena saklar, posisi, daftar, dan Python adalah kata-kata yang kelebihan beban).
Ini agak sederhana - saya punya daftar ini:
['title', 'email', 'password2', 'password1', 'first_name', 'last_name', 'next', 'newsletter']
Saya ingin beralih posisi 'password2'
dan 'password1'
- tidak mengetahui posisi pasti mereka, hanya saja mereka tepat di sebelah satu sama lain dan password2
yang pertama.
Saya telah menyelesaikan ini dengan beberapa daftar-subskripsi yang agak bertele-tele, tetapi saya bertanya-tanya apakah mungkin untuk menghasilkan sesuatu yang sedikit lebih elegan?
Jawaban:
sumber
Pertukaran Python sederhana terlihat seperti ini:
Sekarang yang perlu Anda lakukan adalah mencari apa yang
i
ada, dan itu dapat dengan mudah dilakukan denganindex
:sumber
Dengan spesifikasi Anda, saya akan menggunakan tugas-slice:
Sisi kanan penugasan slice adalah "slice terbalik" dan bisa juga dieja:
jika Anda menemukan itu lebih mudah dibaca, seperti banyak yang akan.
sumber
Bagaimana bisa lebih lama dari itu?
Itu hanya swap biasa menggunakan penyimpanan sementara.
sumber
my_list[indexOfPwd2],my_list[indexOfPwd2+1] = my_list[indexOfPwd2+1],my_list[indexOfPwd2]
sebagai akibat dari ini jika elemen terakhir lebih besar dari elemen pada posisi
i
maka keduanya ditukar.sumber
Anda dapat menggunakan misalnya:
sumber
Saya bukan ahli dalam python tetapi Anda dapat mencoba: katakanlah
di atas akan memberikan o / p sebagai:
sumber