Computer >> Máy Tính >  >> Lập trình >> Python

Làm cách nào để sắp xếp danh sách các từ điển theo các giá trị của từ điển trong Python?


Python có một hàm tích hợp sorted () sắp xếp các phần tử của một tệp có thể lặp lại theo một thứ tự nhất định.

sorted(iterable[, key][, reverse]

Tham số thứ hai là một hàm có giá trị trả về được sử dụng làm khóa để sắp xếp. Tham số thứ ba theo mặc định là false, nếu đúng, danh sách được sắp xếp sẽ xuất hiện theo thứ tự giảm dần.

Chúng tôi sử dụng một hàm lambda xác định giá trị của một khóa từ điển làm khóa cho hàm được sắp xếp. Ví dụ sau sắp xếp danh sách các từ điển theo thứ tự tăng dần của giá trị được liên kết với khóa.

>>> dictlist=[{'name':'Rahul', 'age':23, 'marks':60}, {'name':'Anil', 'age':18, 'marks':55}, {'name':'Sunil', 'age':21, 'marks':90}]
>>> newlist=sorted(dictlist, key = lambda k:k['name'])
>>> newlist
[{'name': 'Anil', 'age': 18, 'marks': 55}, {'name': 'Rahul', 'age': 23, 'marks': 60}, {'name': 'Sunil', 'age': 21, 'marks': 90}]
>>> newlist=sorted(dictlist, key = lambda k:k['age'])
>>> newlist
[{'name': 'Anil', 'age': 18, 'marks': 55}, {'name': 'Sunil', 'age': 21, 'marks': 90}, {'name': 'Rahul', 'age': 23, 'marks': 60}]
>>> newlist=sorted(dictlist, key = lambda k:k['marks'], reverse=True)
>>> newlist
[{'name': 'Sunil', 'age': 21, 'marks': 90}, {'name': 'Rahul', 'age': 23, 'marks': 60}, {'name': 'Anil', 'age': 18, 'marks': 55}]