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!