Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimanakah Saya Boleh Mengisih Satu Senarai Sambil Mengekalkan Susunan Selari dalam Satu Senarai Yang Lain?

Bagaimanakah Saya Boleh Mengisih Satu Senarai Sambil Mengekalkan Susunan Selari dalam Satu Senarai Yang Lain?

Mary-Kate Olsen
Lepaskan: 2024-12-07 15:03:15
asal
136 orang telah melayarinya

How Can I Sort One List While Maintaining Parallel Order in Another?

Isih Senarai Selari dengan Pilihatur Automatik

Pernyataan Masalah

Diberikan dua senarai selari arbitrari jenis data, cipta kaedah untuk mengisih satu senarai sambil menyusun semula senarai yang lain pada masa yang sama dalam susunan yang sama.

Penyelesaian

Satu pendekatan biasa untuk menangani masalah ini melibatkan simpulan bahasa "menghias, menyusun, tidak menghias". Menggunakan fungsi zip terbina dalam Python, kami boleh menggabungkan unsur-unsur kedua-dua senarai ke dalam tuple dengan cekap dan mengisih tupel ini berdasarkan nilai dari senarai pertama. Senarai isih tupel ini kemudiannya boleh "tidak dihias" untuk mendapatkan senarai diisih yang diingini.

Pelaksanaan:

list1, list2 = zip(*sorted(zip(list1, list2)))
# Alternatively, for in-place sorting:
# tups = zip(list1, list2)
# tups.sort()
# list1, list2 = zip(*tups)
Salin selepas log masuk

Kelebihan dan Prestasi

Pendekatan ini mengutamakan kesederhanaan dan ketepatan, terutamanya dengan penggunaan fungsi zip. Walau bagaimanapun, untuk senarai kecil, versi di tempat mungkin lebih pantas sedikit:

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

Untuk senarai yang lebih besar, versi satu baris boleh berprestasi lebih baik dalam situasi tertentu.

Pendekatan Alternatif

Seperti yang dinyatakan dalam ulasan, pendekatan lain wujud, seperti menyusun indeks atau menyediakan fungsi kunci tersuai kepada algoritma pengisihan. Alternatif ini mungkin sesuai jika perbandingan langsung elemen dalam senarai kedua bermasalah.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengisih Satu Senarai Sambil Mengekalkan Susunan Selari dalam Satu Senarai Yang Lain?. 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