Bagaimana untuk Isih Senarai Senarai dengan Susunan Bercampur?

Linda Hamilton
Lepaskan: 2024-10-21 16:33:29
asal
601 orang telah melayarinya

How to Sort Lists of Lists with Mixed Ordering?

Mengisih Senarai Senarai dengan Susunan Bercampur

Memandangkan senarai senarai dengan dua elemen, menyusunnya dalam susunan tertentu boleh menjadi mencabar. Biasanya, pengisihan dilakukan menggunakan satu kriteria. Walau bagaimanapun, dalam kes ini, kita perlu mengisih berdasarkan elemen pertama dalam tertib menurun dan elemen kedua dalam tertib menaik.

Untuk mencapai pengisihan bercampur ini, kita boleh menggunakan fungsi lambda dan kaedah isihan dalam Python. Hujah utama kaedah isihan mengambil fungsi yang menentukan susunan isihan. Fungsi yang kami sediakan akan mempertimbangkan kedua-dua elemen setiap senarai.

Untuk mencipta kunci gabungan yang mengendalikan kedua-dua elemen, kita boleh menggunakan fungsi lambda berikut:

<code class="python">lambda k: (k[0], -k[1])</code>
Salin selepas log masuk

Di sini, kami menggunakan tuple untuk menggabungkan kedua-dua elemen. Elemen pertama mewakili elemen pertama senarai, dan elemen kedua ialah negatif elemen kedua. Penafian ini memastikan tertib menurun untuk elemen kedua.

Sekarang, kita boleh menggunakan fungsi lambda ini dalam kaedah isihan:

<code class="python">L.sort(key=lambda k: (k[0], -k[1]), reverse=True)</code>
Salin selepas log masuk

Argumen terbalik=True menentukan bahawa pengisihan harus dilakukan dalam susunan terbalik, yang sejajar dengan keperluan kami untuk tertib menurun untuk elemen pertama.

Hasilnya, senarai L akan diisih dengan elemen pertama menurun dan elemen kedua menaik:

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

Atas ialah kandungan terperinci Bagaimana untuk Isih Senarai Senarai dengan Susunan Bercampur?. 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