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ánhreverse:Truecho descending, mặc địnhFalse
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.