Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimana untuk Mengisih Senarai Python mengikut Pelbagai Medan?

Bagaimana untuk Mengisih Senarai Python mengikut Pelbagai Medan?

Barbara Streisand
Lepaskan: 2024-11-23 18:23:10
asal
716 orang telah melayarinya

How to Sort a Python List by Multiple Fields?

Mengisih Senarai Python mengikut Pelbagai Medan

Mengisih senarai Python mengikut satu medan adalah tugas biasa, tetapi bagaimana jika anda perlu isih mengikut berbilang medan?

Pertimbangkan senarai berikut yang dibuat daripada CSV yang diisih fail:

list1 = sorted(csv1, key=operator.itemgetter(1))
Salin selepas log masuk

Ini mengisih senarai mengikut medan kedua. Namun, bagaimana jika anda ingin mengisih dahulu mengikut medan pertama dan kemudian mengikut medan kedua?

Penyelesaiannya ialah menggunakan fungsi lambda sebagai hujah utama kepada fungsi sorted() . Fungsi lambda ialah fungsi tanpa nama yang boleh digunakan untuk menentukan kriteria pengisihan mudah. Dalam kes ini, fungsi lambda mengambil satu hujah, yang mewakili elemen dalam senarai dan mengembalikan tuple yang mengandungi dua medan yang anda mahu isih mengikut.

Sebagai contoh, untuk mengisih senarai mengikut medan pertama dan kedua, anda boleh menggunakan fungsi lambda berikut:

sorted_list = sorted(list1, key=lambda x: (x[0], x[1]))
Salin selepas log masuk

Fungsi lambda ini mengembalikan tuple yang mengandungi medan pertama dan kedua senarai unsur. Senarai kemudian diisih mengikut tupel ini, yang menyebabkan senarai diisih dahulu mengikut medan pertama dan kemudian dengan medan kedua.

Anda juga boleh menggunakan fungsi lambda untuk mengisih mengikut satu medan menaik dan satu lagi menurun. Contohnya, untuk mengisih senarai mengikut medan pertama menaik dan medan kedua menurun, anda boleh menggunakan fungsi lambda berikut:

sorted_list = sorted(list1, key=lambda x: (x[0], -x[1]))
Salin selepas log masuk

Fungsi lambda ini mengembalikan tuple yang mengandungi medan pertama elemen senarai dan negatif medan kedua. Senarai kemudian diisih mengikut tupel ini, yang menyebabkan senarai diisih mengikut medan pertama menaik dan medan kedua menurun.

Atas ialah kandungan terperinci Bagaimana untuk Mengisih Senarai Python mengikut Pelbagai Medan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
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