我想按频率降序对列表进行排序。如果两个值的频率相同,那么我还希望这两个值按降序排列。
例如,
mylist = [1, 1, 2, 2, 2, 3, 3, 3, 3, 3, 5, 5, 5, 4, 4, 4, 4, 4, 4]
我希望我的结果是
[4,4,4,4,4,4,3,3,3,3,3,5,5,5,2,2,2,1,1].
如果我使用
sorted(mylist,key = mylist.count,reverse = True)
我会得到
[4,4,4,4,4,4,3,3,3,3,3,2,2,2,5,5,5,1,1];
我试过
sorted(mylist,key = lambda x:(mylist.count,-x),reverse = True)
但我认为有些问题,它只给了我结果:
[1, 1, 2, 2, 2, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 5, 5, 5].
所以我的问题是我怎样才能得到我想要的结果以及为什么结果会是这样
[1, 1, 2, 2, 2, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 5, 5, 5]
如果我使用
sorted(mylist,key = lambda x:(mylist.count,-x),reverse = True)
慕娘9325324
墨色风雨
皈依舞
相关分类