Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah Saya Boleh Isih Senarai Kamus dalam Python dengan Kunci Khusus?

Bagaimanakah Saya Boleh Isih Senarai Kamus dalam Python dengan Kunci Khusus?

DDD
DDDasal
2024-12-31 12:49:14555semak imbas

How Can I Sort a List of Dictionaries in Python by a Specific Key?

Mengisih Kamus dalam Python

Mengisih senarai kamus berdasarkan nilai kunci tertentu ialah tugas biasa. Mari kita pertimbangkan senarai kamus dengan nama dan umur:

list_to_be_sorted = [{'name': 'Homer', 'age': 39}, {'name': 'Bart', 'age': 10}]

Untuk mengisih senarai ini mengikut nama dalam tertib menaik, kita boleh menggunakan fungsi sorted() dengan parameter utama. Parameter utama membolehkan kami menentukan fungsi yang menentukan susunan pengisihan.

newlist = sorted(list_to_be_sorted, key=lambda d: d['name'])

Dalam kes ini, kami mentakrifkan fungsi lambda yang mengekstrak nilai 'nama' daripada setiap kamus dan menggunakan nilai itu untuk mengisih. Hasil yang disusun ialah:

[{'name': 'Bart', 'age': 10}, {'name': 'Homer', 'age': 39}]

Sebagai alternatif, kita boleh menggunakan operator.itemgetter dan bukannya mentakrifkan fungsi tersuai. Itemgetter mengembalikan boleh panggil yang mengekstrak medan tertentu daripada setiap kamus.

from operator import itemgetter
newlist = sorted(list_to_be_sorted, key=itemgetter('name'))

Ini juga menghasilkan hasil isihan yang sama seperti sebelumnya.

Akhir sekali, untuk mengisih senarai dalam tertib menurun, kita boleh set reverse=True dalam fungsi sorted().

newlist = sorted(list_to_be_sorted, key=itemgetter('name'), reverse=True)

Ini akan mengisih senarai sebagai:

[{'name': 'Homer', 'age': 39}, {'name': 'Bart', 'age': 10}]

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Isih Senarai Kamus dalam Python dengan Kunci Khusus?. 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