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)
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)
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!