在Python中,如何获取列表中出现次数最多的内容,并以这种方式对其进行排序?
[3, 3, 3, 4, 4, 2]
将是:
[ (3, 3), (4, 2), (2, 1) ]
输出应按最高计数到最低计数排序。在这种情况下,3比2比1。
[3, 3, 3, 4, 4, 2]
Would be:
[ (3, 3), (4, 2), (2, 1) ]
The output should be sorted by highest count first to lowest count. In this case, 3 to 2 to 1.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
您可以在 Python 2.7+ 中使用 计数器 (此食谱适用于 2.5+):
You can use a Counter in Python 2.7+ (this recipe works on 2.5+):
尝试使用 collections.Counter:
Try using a collections.Counter:
为什么要选择 O(n**2) 算法来执行此操作。 Counter 的替代方案(如果您的值 <2.7)并不太困难
Why would you choose an O(n**2) algorithm to do this. The alternative to Counter (if you have <2.7) is not too difficult
我想,这就是你所要求的。抱歉,第一次回答太仓促了。但请注意,排序的
cmp
参数在 python3 中不可用I think, this is what you asked for. Sorry for hurry with the first answer. But just note that
cmp
argument for sorted is not available in python3