Tôi đang làm việc với một list
của dict
đối tượng trông như thế này (theo thứ tự của các đối tượng khác):Cho một danh sách các từ điển, làm thế nào tôi có thể loại bỏ các bản sao của một chìa khóa, và sắp xếp theo
[
{'name': 'Foo', 'score': 1},
{'name': 'Bar', 'score': 2},
{'name': 'Foo', 'score': 3},
{'name': 'Bar', 'score': 3},
{'name': 'Foo', 'score': 2},
{'name': 'Baz', 'score': 2},
{'name': 'Baz', 'score': 1},
{'name': 'Bar', 'score': 1}
]
Điều tôi muốn làm là xóa tên trùng lặp, chỉ giữ một tên của mỗi tên có số cao nhất là 'score'
. Kết quả từ danh sách trên sẽ là:
[
{'name': 'Baz', 'score': 2},
{'name': 'Foo', 'score': 3},
{'name': 'Bar', 'score': 3}
]
Tôi không chắc chắn mà mẫu để sử dụng ở đây (ngoài một vòng dường như ngu ngốc mà giữ kiểm tra nếu hiện tại dict
's 'name'
có trong danh sách đã và sau đó . kiểm tra nếu nó 'score'
cao hơn 'score'
Đi với vòng lặp, nó đơn giản và rõ ràng. –
Đơn giản và rõ ràng và dễ đọc trong sáu tháng khi bạn cần thay đổi nó "hơi" –
+1 Có điều gì đó kỳ diệu về câu hỏi này ở chỗ nó đã đưa ra một loạt các câu trả lời đa dạng và thú vị. Nó là hấp dẫn bao nhiêu giải pháp hoàn toàn khác nhau vấn đề này có. Tôi coi đây là một yêu thích vì bộ câu trả lời phong phú (cũng có thể trả lời mọi câu trả lời có giải pháp sáng tạo hoặc thú vị). –