collections 模块之Counter
Counter字典的子类,用于统计哈希对象
from collections import Counter users = ["body1","body11","body13","body14","body11","body12","body13","body11"] user_counter = Counter(users) print (user_counter) #打印结果:
Counter({'body11': 3, 'body13': 2, 'body1': 1, 'body14': 1, 'body12': 1}) user1_counter = Counter("abcdABCDAAccDd") #统计字符串
print (user1_counter)
#打印结果:
Counter({'c': 3, 'A': 3, 'd': 2, 'D': 2, 'a': 1, 'b': 1, 'B': 1, 'C': 1})
user1_counter.update(user_counter) #更新合并统计(将user_counter和user1_counter的数据合并统计)
print (user1_counter)
#打印结果:
Counter({'c': 3, 'A': 3, 'body11': 3, 'd': 2, 'D': 2, 'body13': 2, 'a': 1, 'b': 1, 'B': 1, 'C': 1, 'body1': 1, 'body14': 1, 'body12': 1})
user1_counter.update('') #合并统计(将user1_counter的数据加入1234后统计)
print (user1_counter)
打印结果:
Counter({'c': 3, 'A': 3, 'body11': 3, 'd': 2, 'D': 2, 'body13': 2, 'a': 1, 'b': 1, 'B': 1, 'C': 1, 'body1': 1, 'body14': 1, 'body12': 1, '1': 1, '2': 1, '3': 1, '4': 1})
#统计出出现次数最多的前n个元素,示例打印前两个
print(user_counter.most_common(2)) #打印结果:
[('body11', 3), ('body13', 2)]
键的删除
>>> from collections import Counter
>>> c = Counter("abcdcba")
>>> c
Counter({'a': 2, 'b': 2, 'c': 2, 'd': 1})
>>> del c["a"]
>>> c
Counter({'b': 2, 'c': 2, 'd': 1})
>>>
算术和集合操作
+、-、&、| 操作也可以用于Counter。其中&和|操作分别返回两个Counter对象各元素的最小值和最大值。需要注意的是,得到的Counter对象将删除小于1的元素。
>>> c = Counter(a=3, b=1)
>>> d = Counter(a=1, b=2)
>>> c + d # c[x] + d[x]
Counter({'a': 4, 'b': 3})
>>> c - d # subtract(只保留正数计数的元素)
Counter({'a': 2})
>>> c & d # 交集: min(c[x], d[x])
Counter({'a': 1, 'b': 1})
>>> c | d # 并集: max(c[x], d[x])
Counter({'a': 3, 'b': 2})
其它操作
sum(c.values()) # 所有计数的总数
c.clear() # 重置Counter对象,注意不是删除
list(c) # 将c中的键转为列表
set(c) # 将c中的键转为set
dict(c) # 将c中的键值对转为字典
c.items() # 转为(elem, cnt)格式的列表
Counter(dict(list_of_pairs)) # 从(elem, cnt)格式的列表转换为Counter类对象
c.most_common()[:-n:-1] # 取出计数最少的n-1个元素
c += Counter() # 移除0和负值
collections 模块之Counter的更多相关文章
- Python标准库——collections模块的Counter类
1.collections模块 collections模块自Python 2.4版本开始被引入,包含了dict.set.list.tuple以外的一些特殊的容器类型,分别是: OrderedDict类 ...
- Python中Collections模块的Counter容器类使用教程
1.collections模块 collections模块自Python 2.4版本开始被引入,包含了dict.set.list.tuple以外的一些特殊的容器类型,分别是: OrderedDict类 ...
- python的Collections 模块
Collections 模块 知识点 Counter 类 defaultdict 类 namedtuple 类 在这个实验我们会学习 Collections 模块.这个模块实现了一些很好的数据结构,它 ...
- python:collections模块
Counter类 介绍:A counter tool is provided to support convenient and rapid tallies 构造:class collections. ...
- collections 模块(namedtuple, deque, Counter )
基本介绍 我们都知道,Python拥有一些内置的数据类型,比如str, int, list, tuple, dict等, collections模块在这些内置数据类型的基础上,提供了几个额外的数据类型 ...
- collections模块---(namedtuple、deque、OrderdDict、defaultdict、Counter)和configparser模块
在内置数据类型(dict. list.set.tuple)的基础上,collections模块还提供了几个额外的数据类型:Counter. deque.defaultdict.namedtuple 和 ...
- python collections模块 计数器(counter)
一.计数器(counter) Counter是对字典类型的补充,用于追踪值的出现次数. ps:具备字典的所有功能 + 自己的功能 把我写入的元素出现的多少次都计算出来 import collectio ...
- python collections模块
collections模块基本介绍 collections在通用的容器dict,list,set和tuple之上提供了几个可选的数据类型 namedtuple() factory function f ...
- Python collections 模块用法举例
Python作为一个“内置电池”的编程语言,标准库里面拥有非常多好用的模块.比如今天想给大家 介绍的 collections 就是一个非常好的例子. 1.collections模块基本介绍 我们都知道 ...
随机推荐
- AMS工作原理—— App启动概要
说明: 1. 通过Launcher或者startActivity启动最终的流程都是和上面的一致的. 2. AMP是AMS在App端(client端)的代理, ATP是ApplicationThread ...
- 二:C#对象、集合、DataTable与Json内容互转示例;
导航目录: Newtonsoft.Json 概述 一:Newtonsoft.Json 支持序列化与反序列化的.net 对象类型: 二:C#对象.集合.DataTable与Json内容互转示例: ...
- P1508 Likecloud-吃、吃、吃
数字金字塔3条路 f[i][j]=max(max(f[i-1][j],f[i-1][j-1]),f[i-1][j+1])+a[i][j]; #include<bits/stdc++.h> ...
- 2010 SD - ICPC D - Emergency
D - Emergency Time Limit:1000MS Memory Limit:65536KB 64bit IO Format:%lld & %llu Submit ...
- MT【298】双参数非齐次
若函数$f(x)=x^2+(\dfrac{1}{3}+a)x+b$在$[-1,1]$上有零点,则$a^2-3b$的最小值为_____ 分析:设零点为$x_0$,则$b=-x^2_0-(\dfrac{1 ...
- 【BZOJ2324】[ZJOI2011]营救皮卡丘(网络流,费用流)
[BZOJ2324][ZJOI2011]营救皮卡丘(网络流,费用流) 题面 BZOJ 洛谷 题解 如果考虑每个人走的路径,就会很麻烦. 转过来考虑每个人破坏的点集,这样子每个人可以得到一个上升的序列. ...
- rt-thread之串口设备的配置流程
@2019-01-30 [小记] > rt-thread 工程启动之后先是进入函数 rtthread_startup 做一些系统运行前的基础工作,主要有: * 板级硬件初始化 * 系统定时器初始 ...
- 一种使用 emwin 绘制图片的方法
@2018-12-10 [小记] 使用官方 <GUIBuilder.exe> 软件里的 Image 控件,注意格式为 .bmp,这种方式是将图片数据直接转为十六进制数据存储至静态区 具体使 ...
- cf1088C Ehab and a 2-operation task (构造)
题意:给一个数列,你可以进行至多n+1次操作,每次给一个前缀对某数取模或者加某数,使得最后数列严格单增 考虑到因为是前缀和而且还不能加负数,光靠加是不能让前面的小于后面的 所以要让他先在模某数意义下单 ...
- Arch Linux中使用VMware Workstation不能打开vmmon内核模块
打开VMware Workstation出现错误提示:Could not open /dev/vmmon: No such device.Please make sure that the kerne ...