Jika Anda tidak perlu asli list
dari dictionaries
, Anda bisa memodifikasinya di tempat dengan sort()
metode menggunakan fungsi tombol kustom.
Fungsi kunci:
def get_name(d):
""" Return the value of a key in a dictionary. """
return d["name"]
Yang list
akan diurutkan:
data_one = [{'name': 'Homer', 'age': 39}, {'name': 'Bart', 'age': 10}]
Mengurutkannya di tempat:
data_one.sort(key=get_name)
Jika Anda memerlukan yang asli list
, panggil sorted()
fungsi yang meneruskannya list
dan fungsi tombol, lalu tetapkan yang dikembalikan yang diurutkan list
ke variabel baru:
data_two = [{'name': 'Homer', 'age': 39}, {'name': 'Bart', 'age': 10}]
new_data = sorted(data_two, key=get_name)
Pencetakan data_one
dan new_data
.
>>> print(data_one)
[{'name': 'Bart', 'age': 10}, {'name': 'Homer', 'age': 39}]
>>> print(new_data)
[{'name': 'Bart', 'age': 10}, {'name': 'Homer', 'age': 39}]
[{'name':'Bart', 'age':10, 'note':3},{'name':'Homer','age':10,'note':2},{'name':'Vasile','age':20,'note':3}]
dan menggunakan:from operator import itemgetter newlist = sorted(old_list, key=itemgetter(-'note','name')
EDIT: Diuji, dan itu berfungsi tetapi saya tidak tahu cara membuat DESC catatan dan nama ASC.