栏目分类:
子分类:
返回
终身学习网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
终身学习网 > IT > 软件开发 > 后端开发 > Python

Python: Counter计数器的用法,去重、统计次数

Python 更新时间:发布时间: 百科书网 趣学号

Counter 计数器用法
    • 一、Counter的功能介绍
    • 二、找出所有重复元素
    • 三、Counter联合统计次数

一、Counter的功能介绍

from collections import Counter ,Counter可以对字符串、列表、元祖、字典进行计数,返回一个字典类型的数据,键是元素,值是元素出现的次数。

调用most_common(x) 可以统计出现最多次数的X个元素(从大到小输出)

Counter 可以与其他方法联合操作,输出不一样的结果,还可以做数学运算。

from collections import Counter

str = "hello-python-hello-hadoop"
r1 = Counter(str)     # 每个字符出现了几次
print("返回键与值:", r1)  # 字典返回键与值
print("值的总和:", sum(r1.values()))  # 返回值的总和

r2 = r1.most_common(4) # 输出前四个最多次数的元素
print("---" * 18)
print("从大到小:", r2)

r3 = str.split("-")  # 结合split,分割成单词统计
print("---" * 18)
print("split分割:", r3)
print("单词统计:", Counter(r3))

二、找出所有重复元素
from collections import Counter

def find_duplicate(str):
    c = Counter(str)
    print(c)
#     c =  Counter(str.split("-")) # 单词分割
#     print(c)

#     d = filter(lambda k: c[k] > 1, c) # 过滤出满足c[k]>1的元素
#     print("重复的元素:", list(d))  # 列表形式输出过滤的元素
    return list(filter(lambda k: c[k] > 1, c)) # 整合代码

str = input("请输入字符串:")  # hello-python-hello-hadoop
find_duplicate(str)



三、Counter联合统计次数
from collections import Counter
tool = ['pen', 'rule', 'knife', 'sword', 'paper']
stationery = ['pen', 'rule', 'paper']

t = Counter(tool)
s = Counter(stationery)
print("累加输出:", (t+s))
print("--"* 25)
def sum_counter(*data):
    if len(data) < 1:
        return "输入错误"
    
    mapc = map(Counter, data) # 把data所有元素转为Counter形式,以列表返回结果
    s = Counter([]) # 定义一个空Counter
    print(s)
    
    for ic in mapc: # 对mapc逐个进行
        s += ic     # 累加次数
        print(s)    # 逐个累加输出
    return s

sum_counter(t, s, ['pen'], ['rule', 'paper', 'watch'])

转载请注明:文章转载自 www.051e.com
本文地址:http://www.051e.com/it/273422.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 ©2023-2025 051e.com

ICP备案号:京ICP备12030808号