Isih Senarai dengan Pilihatur Senarai Selari
Memandangkan dua senarai selari, satu boleh diisih sambil menyusun semula satu lagi dalam penyegerakan. Ini dicapai dengan mengisih senarai pertama dan menggunakan indeks elemen tersusun semula untuk menyusun semula senarai kedua.
Satu pendekatan biasa ialah simpulan bahasa "hias, isi, tidak hias", yang mengezip dua senarai, mengisihnya berdasarkan senarai pertama, dan kemudian unzip hasilnya. Menggunakan fungsi zip Python, ini boleh dilaksanakan secara ringkas seperti berikut:
list1, list2 = zip(*sorted(zip(list1, list2)))
Walau bagaimanapun, untuk senarai yang lebih besar, versi di tempat yang lebih cekap wujud:
tups = zip(list1, list2) tups.sort() list1, list2 = zip(*tups)
Untuk senarai yang mengandungi bukan -elemen setanding, indeks pengisihan menggunakan fungsi lambda boleh digunakan. Sebagai alternatif, fungsi utama boleh disediakan untuk isihan untuk mengelak daripada membandingkan elemen senarai kedua:
result1, result2 = zip(*sorted(zip(list1, list2), key=lambda x: x[0]))
Input kosong harus dikendalikan secara berasingan dan seseorang harus sedar bahawa versi di tempat mungkin lebih pantas sedikit , terutamanya untuk senarai kecil.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menyusun Dua Senarai Selari dengan Cekap dalam Python Semasa Mengekalkan Penyegerakan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!