Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Mengisih Senarai Bersarang dengan Elemen Menurun dan Menaik dalam Python?

Bagaimana untuk Mengisih Senarai Bersarang dengan Elemen Menurun dan Menaik dalam Python?

Linda Hamilton
Linda Hamiltonasal
2024-10-21 16:41:02543semak imbas

How to Sort a Nested List with Descending and Ascending Elements in Python?

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!

Kenyataan:
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