Bagaimana untuk Mengisih Senarai Bersarang Menaik dan Menurun dalam Python?

Linda Hamilton
Lepaskan: 2024-10-21 16:42:02
asal
975 orang telah melayarinya

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

Cara Isih Senarai Bersarang dalam Susunan Menaik dan Menurun

Dalam Python, anda boleh menghadapi situasi di mana anda mempunyai senarai yang mengandungi subsenarai , dan anda perlu mengisihnya dengan cara tertentu, seperti mengisih elemen pertama dalam tertib menurun dan elemen kedua dalam tertib menaik.

Untuk mencapai ini, anda boleh menggunakan hujah utama dalam sort() fungsi. Argumen ini membolehkan anda menentukan bagaimana elemen harus dibandingkan untuk pengisihan. Dalam kes ini, kita memerlukan fungsi pengisihan 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

Argumen utama mengambil fungsi lambda sebagai nilainya. Fungsi ini menerima elemen k mewakili subsenarai dan mengembalikan tuple: (k[0], -k[1]).

  • k[0] ialah elemen pertama subsenarai, yang kita mahu mengisih dalam tertib menurun.
  • -k[1] ialah negatif unsur kedua, yang kita mahu mengisih dalam tertib menaik. Dengan menyongsangkan tanda, kami mencapai tertib menaik.

Dengan menyatakan reverse=True, kami mengisih senarai yang terhasil dalam tertib menurun berdasarkan tupel yang dikembalikan oleh fungsi lambda.

Sebagaimana hasilnya, senarai L kini mengandungi:

<code class="python">[['b', 1], ['b', 2], ['b', 3], ['a', 1], ['a', 2], ['a', 3]]</code>
Salin selepas log masuk

Tunjuk cara ini mempamerkan cara mengisih senarai bersarang dengan berkesan menggunakan fungsi isihan tersuai berdasarkan hujah utama dalam fungsi sort().

Atas ialah kandungan terperinci Bagaimana untuk Mengisih Senarai Bersarang Menaik dan Menurun 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!