python == class collections.Counter([iterable-or-mapping]) 另一种计算list中出现次数最多的元素的方式

一:Python文档解释

概念:

Counterdict的子类,用于计数可哈希对象。它是一个无序的容器,元素被存储为字典键,它们的计数被存储为字典值。计数允许包括零或负计数的任何整数值。

>>>a = [1, 1, 2, 2, 2, 2, 3, 3, 3, 4, 6]
>>> from collections import Counter
>>> c = Counter(a)                             # Counter接受一个可迭代对象,返回Counter对象
>>> c                                          # 这个对象由迭代对象的元素为键,元素个数为值
Counter({2: 4, 3: 3, 1: 2, 4: 1, 6: 1})          

Counter的特点:

1.计数器对象的接口和字典一样,除了它们对于缺失项目返回一个零计数,而不是引发KeyError

>>> Counter({2: 4, 3: 3, 1: 2, 4: 1, 6: 1})
>>> c[5]                                      # count of a missing element is zero
0

2.将计数设置为零不会从计数器中删除元素。使用才能del将其完全删除:

>>> Counter({2: 4, 3: 3, 1: 2, 4: 1, 6: 1})
>>> c[6] = 0
>>> c
Counter({2: 4, 3: 3, 1: 2, 4: 1, 6: 0})         # 可以看到 6 并未被删除,只是值为零
>>> a
[1, 1, 2, 2, 2, 2, 3, 3, 3, 4, 6]
>>> del cnt[6]
>>> cnt
Counter({2: 4, 3: 3, 1: 2, 4: 1})

二:Counter的使用,most_common([n])

参数:n

返回n个最常见的元素及其计数的列表,从最常见到最少见。如果省略n或为Nonemost_common()返回计数器中所有元素。具有相等计数的元素是任意排序的:

>>> c.most_common()
[(2, 4), (3, 3), (1, 2), (4, 1), (6, 1)]
>>> c.most_common(3)
[(2, 4), (3, 3), (1, 2)]
>>> um = cnt.most_common()
>>> type(um)
<type 'list'>
>>> um[0][1]                                # 获取迭代对象中最多元素的个数
4
>>> um[0][0]                                # 获取迭代对象终最多的元素
2

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值