Python 统计、排序

统计Counter 统计列表中元素的个数
代码如下:

from collections import Counter

l = [1, 1, 2, 2, 3, 3, 11, 99, 10, 11, 22, 55, 44, 22, 33, 44, 66, 99, 5, 1, 3, 22, 33]
temp = Counter(l)
# 显示前三个最多的元素
print(temp.most_common(3))
# 将其转换为dict类型
print(dict(temp))

运行结果如下:

[(1, 3), (3, 3), (22, 3)]
{1: 3, 2: 2, 3: 3, 11: 2, 99: 2, 10: 1, 22: 3, 55: 1, 44: 2, 33: 2, 66: 1, 5: 1}

接着,可以将统计完的数据使用sorted进行排序
代码如下:

from collections import Counter

l = [("a", 11), ("e", 1),("b", 22),("a", 11),("d", 10),("a", 10),("d", 10),("a", 11),("c", 3),("a", 11)]
temp = Counter(l)
# 将其转换为dict类型
d = dict(temp)
print("统计结果")
print(d)
print("以字母排序")
print(sorted(d.items(), key = lambda x: x[0], reverse = True))
print("统计出的次数排序")
print(sorted(d.items(), key = lambda x: x[1]))
# print(sorted(d.items(), key = lambda x: x[0][1]))
print("以字母对应的数字排序")
print(sorted(d.items(), key = lambda x: x[0][1]))
print("先以字母排序,再以字母对应的数字排序")
print(sorted(d.items(), key = lambda x: (x[0][1], x[0][0])))

运行结果如下:

统计结果
{('a', 11): 4, ('e', 1): 1, ('b', 22): 1, ('d', 10): 2, ('a', 10): 1, ('c', 3): 1}
以字母排序
[(('a', 10), 1), (('a', 11), 4), (('b', 22), 1), (('c', 3), 1), (('d', 10), 2), (('e', 1), 1)]
统计出的次数排序
[(('e', 1), 1), (('b', 22), 1), (('a', 10), 1), (('c', 3), 1), (('d', 10), 2), (('a', 11), 4)]
以字母对应的数字排序
[(('e', 1), 1), (('c', 3), 1), (('d', 10), 2), (('a', 10), 1), (('a', 11), 4), (('b', 22), 1)]
先以字母排序,再以字母对应的数字排序
[(('e', 1), 1), (('c', 3), 1), (('a', 10), 1), (('d', 10), 2), (('a', 11), 4), (('b', 22), 1)]

指定用哪个关键字排序,可以用lambda;如果要指定两个以上的关键字,请参考代码最后一个例子
如需反序,请使用"reverse = True"

参考:
https://www.cnblogs.com/rubylouvre/archive/2011/06/19/2084801.html
https://www.cnblogs.com/ahochen/p/10670573.html

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 版本: 2.3.0 原文链接: http://spark.apache.org/docs/latest/rdd-...
    金刚_30bf阅读 4,837评论 0 0
  • 马云在《开讲啦》上面说:“其实钱有什么用,财富有什么用?我从来没碰过钱,我对钱没有兴趣。”他自称生活在一个...
    伊笑花开阅读 7,784评论 0 2
  • 以前,最近,总是想起以前。是不是人在某个阶段,都会想起从前,回忆一些片段?或是和小朋友呆一起久了,总是被问及:你那...
    孔律阅读 2,224评论 0 1
  • 今天和w先生沟通了昨天他的谈判情况,老大是同意目前我们设计这个品牌的设想,但是其中有合伙人可能担心总厨参与会影响z...
    草稿记录阅读 1,378评论 0 1