概述
# -*- coding: utf-8 -*-
from collections import Counter
# Counter的本质是一个特殊的dict,它继承了dict类,因此它可以完全调用dict所支持的方法。
# 创建空的Counter对象
c1 = Counter()
print(c1['pp']) # 访问Counter中不存在的元素,输出 0
c2 = Counter('hannah')
print(c2)
c3 = Counter(['python', 'java', 'php', 'kotlin', 'java', 'php'])
print(c3)
# 以dict来创建counter对象
c4 = Counter({'red': 4, 'blue': 2})
print(c4)
# 使用关键字参数的语法创建Counter
c5 = Counter(Python=3, Swift=4)
print(c5)
cnt = Counter()
for word in ['python', 'java', 'php', 'kotlin', 'java', 'php']:
cnt[word] += 1
print(cnt)
# elements() 返回Counter所包含的全部元素组成的迭代器
print(list(c3.elements()))
# 将字符串(迭代器)转换成Counter
chr_cnt = Counter('abracadabraefg')
# most_common(n) 获取出现最多的n个元素
print(chr_cnt.most_common(3))
c = Counter(a=4, b=2, c=0, d=-2)
d = Counter(a=1, b=2, c=3, d=4)
# 用Counter对象执行减法,其实就是减少各元素出现的次数
c.subtract(d)
print(c)
e = Counter({'x': 2, 'y': 3, 'z': -4})
# 调用del删除 key-value对,会真正删除该key-value对
del e['y']
print('调用del之后 e元素为:', e)
'''
Counter对象还有一些常用操作,比如把其转换成set(集合)、list(列表)、dict(字典)等。
还可以对Counter执行加、减、并、交运算,对Counter进行求正、求负运算等。
--- 加减并交操作得到的Counter对象小于1的元素都删除 ---
加:将两个Counter对象中各key出现的次数相加,且只保留出现次数为正的元素。
减:将两个Counter对象中各key出现的次数相减,且只保留出现次数为正的元素。
交:取两个Counter对象中 都出现 的key且各key对应的次数的最小数。
并:取两个Counter对象中各key对应的出现次数的最大数。
求正:只保留Counter对象中出现次数为 0或正数 的key-value对
求负:只保留 Counter 对象中出现次数为负数的 key-value 对,并将出现次数改为正数。
'''
c = Counter(Python=5, Swift=1, Kotlin=4, Go=-2)
# 统计Counter中所有出现次数的总和
print(sum(c.values()))
# 将counter转换成list、set,只保留各key
print(list(c)) # ['Python', 'Go', 'Swift', 'Kotlin']
print(set(c)) # {'Python', 'Swift', 'Kotlin', 'Go'}
print(dict(c)) # {'Python': 3, 'Kotlin': 3, 'Swift': 2, 'Go': -2}
# 将Counter转换成list 列表元素为元组(元素,次数)
list_of_pairs = c.items()
print(list_of_pairs)
# 将列表元素为元组(元素,次数)的list转换成Counter
c2 = Counter(dict(list_of_pairs))
print(c2)
# 获取Counter中最少出现的三个元素 most_common获取出现次数最大的 n 个元素 [:-4:-1] 倒数前三
print(c.most_common()[:-4:-1])
# 清空所有的 key-value对
c.clear()
print(c)
c = Counter(a=3, b=1, c=-4)
d = Counter(a=1, b=-2, d=3)
# 加减并交操作得到的Counter对象小于1的元素都删除
print(c + d) # 最终只保留出现次数为正的元素
# 对Counter执行减法
print(c - d) # 最终只保留出现次数为正的元素
# 交
print(c & d) # Counter({'a': 1})
# 并
print(c | d) # Counter({'a': 3, 'd': 3, 'b': 1})
print(+c) # Counter({'a': 3, 'b': 1})
print(-d) # Counter({'b': 2})
运行结果:
最后
以上就是专注美女为你收集整理的python Counter计数的全部内容,希望文章能够帮你解决python Counter计数所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复