Hỏi về sắp xếp một dict python theo thứ tự

Mình có một dict sau:

a= {"focus": 1, "on": 2, "solving": 1, "problems": 1, "rather": 1, "than": 1, "focusing": 1, "syntax": 1}

Làm sao mình có thể sắp xếp dict sau theo thứ tự giảm dần value cùa nó. Nếu 2 key có values bằng nhau thì sắp xếp theo thứ tự alphabet ạ. Mình làm được phần sắp xếp theo thứ tự giảm dần của values rồi nhưng phần sau thì mình không biết làm. Xin cảm ơn.

 a= {"focus": 1, "on": 2, "solving": 1, "problems": 1, "rather": 1, "than": 1, 
"focusing": 1, "syntax": 1}
sorted_wordList = {}

sortedValue = sorted(a.values(), reverse=True)

for sortedKey in sortedValue:
for key, value in a.items():
    if value == sortedKey:
        sorted_wordList[key] = value

Bạn lưu ý topic phải có đủ category nhé.


Bạn sử dụng .items() để lấy ra các cặp (key, value) rồi sắp xếp trên list các items này.

sorted(a.items(), key=lambda kv: (-kv[1], kv[0]))

Ở đây kv là 1 cặp key-value, kv[1] là value, kv[0] là key.

6 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?