Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimanakah Saya Boleh Menyusun Dua Senarai Selari dengan Cekap dalam Python Semasa Mengekalkan Penyegerakan?

Bagaimanakah Saya Boleh Menyusun Dua Senarai Selari dengan Cekap dalam Python Semasa Mengekalkan Penyegerakan?

Barbara Streisand
Lepaskan: 2024-12-11 14:49:12
asal
460 orang telah melayarinya

How Can I Efficiently Sort Two Parallel Lists in Python While Maintaining Synchronization?

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)))
Salin selepas log masuk

Walau bagaimanapun, untuk senarai yang lebih besar, versi di tempat yang lebih cekap wujud:

tups = zip(list1, list2)
tups.sort()
list1, list2 = zip(*tups)
Salin selepas log masuk

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]))
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan