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

Linda Hamilton
Lepaskan: 2024-10-21 16:41:02
asal
536 orang telah melayarinya

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

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

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

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

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!

sumber:php
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
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!