Isih Senarai Bersarang dengan Elemen Menurun dan Menaik
Dalam Python, anda boleh menghadapi senario di mana anda perlu mengisih senarai yang mengandungi senarai bersarang dengan kriteria pengisihan tertentu. Pertimbangkan senarai seperti ini:
['a',1] ['a',2] ['a',3] ['b',1] ['b',2] ['b',3]
Tugasnya ialah mengisih senarai ini supaya elemen 0 (huruf) diisih dalam tertib menurun, manakala elemen 1 (nombor) diisih dalam tertib menaik. Senarai yang terhasil sepatutnya kelihatan seperti:
['b',1] ['b',2] ['b',3] ['a',1] ['a',2] ['a',3]
Untuk mencapai pengisihan ini, kita boleh menggunakan fungsi isihan terbina dalam Python bersama-sama dengan fungsi kekunci tersuai yang mengisih berdasarkan berbilang kriteria. Fungsi kekunci akan mengambil setiap senarai bersarang sebagai input dan menjana tuple yang berfungsi sebagai kunci pengisihan.
Coretan kod berikut menunjukkan cara mengisih senarai bersarang menggunakan fungsi kunci tersuai:
<code class="python">L = [['a',1], ['a',2], ['a',3], ['b',1], ['b',2], ['b',3]] L.sort(key=lambda k: (k[0], -k[1]), reverse=True)</code>
Dalam kod ini, fungsi kekunci menghasilkan tuple menggunakan elemen pertama (huruf) dan penolakan elemen kedua (nombor). Meniadakan elemen kedua membolehkan kita mencapai isihan menaik untuk nombor. Argumen reverse=True tambahan dalam fungsi isihan memastikan pengisihan menurun berdasarkan kekunci tuple.
Akibatnya, senarai L kini akan diisih seperti yang dikehendaki:
[['b', 1], ['b', 2], ['b', 3], ['a', 1], ['a', 2], ['a', 3]]
Pendekatan ini menyediakan cara serba boleh untuk mengisih struktur data yang kompleks seperti senarai bersarang dengan berbilang kriteria pengisihan.
Atas ialah kandungan terperinci Bagaimana untuk Mengisih Senarai Bersarang dengan Elemen Menurun dan Menaik dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!