Tôi có một danh sách các hàng:Sắp xếp phức tạp với nhiều thông số?
li = [('fink', 3), ('flip', 3), ('flock', 4), ('foo', 12), ('foot', 20), ('football', 20), ('futz', 10), ('flip', 3), ('flank', 3), ('flop', 3)]
Làm thế nào tôi có thể sắp xếp danh sách theo số gốc đầu tiên và sau đó theo thứ tự abc giảm dần? Kết quả sẽ là:
('foot', 20)
('football', 20)
('foo', 12)
('futz', 10)
('flock', 4)
('fink', 3)
('flip', 3)
('flake', 3)
('flop', 3)
from operator import itemgetter
sorted_li = sorted(li, key=itemgetter(1,0), reverse=True)
Khi mã ở trên sắp xếp theo số giảm dần chính xác, các từ không được sắp xếp theo thứ tự bảng chữ cái.
có thể trùng lặp với [Tiêu chí sắp xếp nâng cao cho danh sách các bộ dữ liệu lồng nhau] (http://stackoverflow.com/questions/3831449/advanced-sorting-criteria-for-a-list-of-nested-tuples) – eumiro