Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Sắp xếp list of dictionaries theo giá trị dictionary trong Python

Python có built-in sorted() sắp xếp iterable theo thứ tự cho trước.

sorted(iterable[, key][, reverse])
  • key: function trả về giá trị dùng để so sánh
  • reverse: True cho descending, mặc định False

Ví dụ

dictlist = [
    {'name': 'Rahul', 'age': 23, 'marks': 60},
    {'name': 'Anil', 'age': 18, 'marks': 55},
    {'name': 'Sunil', 'age': 21, 'marks': 90}
]

# Sort by name (A-Z)
by_name = sorted(dictlist, key=lambda k: k['name'])
# [{'name': 'Anil', ...}, {'name': 'Rahul', ...}, {'name': 'Sunil', ...}]

# Sort by age (tăng dần)
by_age = sorted(dictlist, key=lambda k: k['age'])
# [{'name': 'Anil', 'age': 18, ...}, {'name': 'Sunil', 'age': 21, ...}, {'name': 'Rahul', 'age': 23, ...}]

# Sort by marks (giảm dần)
by_marks = sorted(dictlist, key=lambda k: k['marks'], reverse=True)
# [{'name': 'Sunil', 'marks': 90, ...}, {'name': 'Rahul', 'marks': 60, ...}, {'name': 'Anil', 'marks': 55, ...}]

Lưu ý: sorted() trả về list mới, không modify original. Dùng list.sort() để sort in-place.