在Python中,如何按出现频率对列表进行排序?
[3, 3, 3, 4, 4, 2]
应该是:
[ (3, 3), (4, 2), (2, 1) ]
输出的结果应该是按照数量从高到低排序。也就是说,先显示3,再显示2,最后是1。
5 个回答
2
试试用 collections.Counter:
from collections import Counter
data = [3,4,2,3,4,3]
Counter(data).most_common()
3
在编程中,有时候我们需要处理一些数据,比如从一个地方获取数据,然后在程序中使用它。这就像是从冰箱里拿食材,然后用这些食材做饭一样。
有些时候,我们会遇到一些问题,比如数据格式不对,或者数据缺失。这就像是你打开冰箱,发现缺少了做菜的材料,或者材料的状态不太好。
为了避免这些问题,我们可以在程序中加入一些检查,确保我们得到的数据是正确的。这就像是在做饭之前,先检查一下冰箱里的食材是否齐全和新鲜。
总之,处理数据的时候要小心,确保一切都正常,这样才能顺利完成我们的编程任务。
data = [3, 3, 3, 4, 4, 2]
result = []
for entry in set(data):
result.append((entry, data.count(entry)))
result.sort(key = lambda x: -x[1])
print result
>>[(3, 3), (4, 2), (2, 1)]