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

Bagaimana untuk Mengisih Senarai Senarai dalam Susunan Menurun dan Menaik?

Patricia Arquette
Patricia Arquetteasal
2024-10-21 17:24:02437semak imbas

How to Sort a List of Lists in Descending and Ascending Order?

Mengisih Senarai Senarai dalam Susunan Menurun dan Menaik

Memandangkan senarai senarai dengan dua elemen, matlamatnya adalah untuk mengisih senarai pertama dalam tertib menurun berdasarkan elemen pertama, dan kemudian dalam tertib menaik berdasarkan elemen kedua.

Untuk mencapai ini, kita boleh menggunakan kaedah sort() bersama-sama dengan fungsi kunci tersuai. Berikut ialah penyelesaian:

<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 kaedah sort() menentukan fungsi yang menentukan susunan isihan. Dalam kes ini, kami mentakrifkan fungsi lambda yang mengambil senarai k dan mengembalikan tuple. Elemen pertama tuple ialah elemen pertama senarai k[0], yang digunakan untuk pengisihan menurun. Elemen kedua ialah penafian elemen kedua senarai -k[1], yang digunakan untuk pengisihan menaik.

Dengan mengisih dalam tertib menurun dahulu, reverse=True memastikan elemen pertama setiap senarai ('a' atau 'b') diisih mengikut susunan abjad terbalik. Selepas itu, pengisihan menaik bagi elemen kedua menghasilkan senarai keseluruhan yang diisih sebagai:

[['b', 1], ['b', 2], ['b', 3], ['a', 1], ['a', 2], ['a', 3]]

Ini secara berkesan mencapai kriteria pengisihan yang diingini.

Atas ialah kandungan terperinci Bagaimana untuk Mengisih Senarai Senarai dalam Susunan Menurun dan Menaik?. 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