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

Bagaimana untuk Mengisih Senarai Bersarang Menaik dan Menurun dalam Python?

Linda Hamilton
Linda Hamiltonasal
2024-10-21 16:42:02978semak imbas

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>

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>

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!

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