Tôi muốn sắp xếp một danh sách lúc đầu bởi một giá trị và sau đó là một giá trị thứ hai. Có cách nào làm dễ hơn không? Dưới đây là một ví dụ nhỏ:Python: Cách sắp xếp danh sách từ điển theo một vài giá trị?
A = [{'name':'john','age':45},
{'name':'andi','age':23},
{'name':'john','age':22},
{'name':'paul','age':35},
{'name':'john','age':21}]
Lệnh này là để phân loại danh sách này bằng 'name'
:
sorted(A, key = lambda user: user['name'])
Nhưng làm thế nào tôi có thể sắp xếp danh sách này bằng một giá trị thứ hai? Giống như 'age'
trong ví dụ này.
Tôi muốn có một phân loại như thế này (trước sắp xếp theo 'name'
và sau đó sắp xếp bởi 'age'
):
andi - 23
john - 21
john - 22
john - 45
paul - 35
Cảm ơn!
Về một mặt không: phân loại của python * được đảm bảo * ổn định, do đó bạn có thể chỉ cần 'sắp xếp' theo' tuổi' và sau đó là 'tên' để có được kết quả mong muốn. (lưu ý rằng các phím theo thứ tự ngược lại. trước tiên bạn sắp xếp theo khóa thứ hai và sau đó bằng phím thứ nhất). – Bakuriu