counter 用法_countdown用法

counter 用法_countdown用法Counter类:Counter类的目的是用来跟踪值出现的次数。它是一个无序的容器类型,以字典的键值对形式存储,其中元素作为key,其计数作为value。计数值可以是任意的Interger(包括0和

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

Counter类:

  Counter类的目的是用来跟踪值出现的次数。它是一个无序的容器类型,以字典的键值对形式存储,其中元素作为key,其计数作为value。计数值可以是任意的Interger(包括0和负数)。Counter类和其他语言的bags或multisets很相似。

(一)创建Counter类

c = Counter()  # 创建一个空的Counter类
c = Counter('gallahad')  # 从一个可iterable对象(list、tuple、dict、字符串等)创建
c = Counter({'a': 4, 'b': 2})  # 从一个字典对象创建
c = Counter(a=4, b=2)

(二)计数值的访问与缺失的键

>>> c = Counter("abcdefgab")
>>> c["a"]
2
>>> c["c"]
1
>>> c["h"]
0

(三)计数器的更新(update和subtract)

可以使用一个iterable对象或者另一个Counter对象来更新键值。

计数器的更新包括增加和减少两种。其中,增加使用update()方法:

>>> c = Counter('which')
>>> c.update('witch')  # 使用另一个iterable对象更新
>>> c['h']
3
>>> d = Counter('watch')
>>> c.update(d)  # 使用另一个Counter对象更新
>>> c['h']
4

减少则使用subtract()方法:

>>> c = Counter('which')
>>> c.subtract('witch')  # 使用另一个iterable对象更新
>>> c['h']
1
>>> d = Counter('watch')
>>> c.subtract(d)  # 使用另一个Counter对象更新
>>> c['a']
-1

(四)键的删除

当计数值为0时,并不意味着元素被删除,删除元素应当使用del

>>> c = Counter("abcdcba")
>>> c
Counter({'a': 2, 'c': 2, 'b': 2, 'd': 1})
>>> c["b"] = 0
>>> c
Counter({'a': 2, 'c': 2, 'd': 1, 'b': 0})
>>> del c["a"]
>>> c
Counter({'c': 2, 'b': 2, 'd': 1})

(五)elements

返回一个迭代器。元素被重复了多少次,在该迭代器中就包含多少个该元素。元素排列无确定顺序,个数小于1的元素不被包含。

>>> c = Counter(a=4, b=2, c=0, d=-2)
>>> list(c.elements())
['a', 'a', 'a', 'a', 'b', 'b']

(六)most_common(n)

返回一个TopN列表。如果n没有被指定,则返回所有元素。当多个元素计数值相同时,排列是无确定顺序的。

>>> c = Counter('abracadabra')
>>> c.most_common()
[('a', 5), ('r', 2), ('b', 2), ('c', 1), ('d', 1)]
>>> c.most_common(3)
[('a', 5), ('r', 2), ('b', 2)]

(七)浅拷贝copy

>>> c = Counter("abcdcba")
>>> c
Counter({'a': 2, 'c': 2, 'b': 2, 'd': 1})
>>> d = c.copy()
>>> d
Counter({'a': 2, 'c': 2, 'b': 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和负值

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/166769.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • pycharm html注释快捷键_python一键注释

    pycharm html注释快捷键_python一键注释pycharm中同时注释多行代码快捷键:1、选中要注释的代码,然后Ctrl+’/’具体效果:importmatplotlib.pyplotaspltdata_dir=’D:/Python/neuralnetwork/CIFAR10-Guoqingxu/data/’BATCH_SIZE=2image_batch,label_batch=read_cifar10(data_d…

    2022年8月25日
    9
  • python详细安装教程环境配置_Python配置环境

    python详细安装教程环境配置_Python配置环境一、准备相应的材料本教程需要的文件如下表所示:文件名简介作用Anaconda3-2021.05-Windows-x86_64.exeAnaconda的安装包配置管理python环境Miniconda3-py39_4.9.2-Windows-x86_64.exe精简版的Anaconda的安装包(电脑配置较差时使用)配置管理python环境pycharm-community-2021.1.3.exePyCharm安装包Python代码的编辑器以上文件可在链

    2022年8月29日
    3
  • QStringList中begin()、end()与first()、last()

    QStringList中begin()、end()与first()、last()QStringList的begin:返回的是迭代器指向第一项iteratorQStringList的end:返回的是迭代器指向最后一项iteratorQStringList的last:返回列表第一项的引用,前提该表不为空QStringList的last:返回列表最后一项的引用…

    2022年5月10日
    86
  • layui实现iframe框架_layui table重新渲染

    layui实现iframe框架_layui table重新渲染layuiAdmin.std(iframe版)是完全基于layui架构而成的通用型后台管理模板系统,采用传统的iframe多页面开发模式,可更快速直接地开发网页后台应用程序,无需过多地学习成本,简单高效,撸起袖子直接干。题外该文档适用于layuiAdmin.std常规版(iframe),阅读之前请务必确认是否与你使用的版本对应。熟练掌握layuiAdmin的前提是熟练…

    2025年7月8日
    4
  • 错误:备份集中的数据库备份与现有XXX数据库不同

    错误:备份集中的数据库备份与现有XXX数据库不同当在使用另外一台的数据库备份文件.bak恢复到本机数据库时,遇到“备份集中的数据库备份与现有XXX数据库不同”的错误时,只需要以下几步:删除与要恢复数据库同名的已经存在的数据库; 右击“数据库”选择“还原数据库”;选择源设备;然后再在弹出窗口的“目标数据库”中选择要还原数据库名;这时要备份的数据库的名字会弹出来,所以不需要提前创建现在手中有SqlServer2…

    2022年6月12日
    34
  • @Autowire和@Resource注解使用的正确姿势,别再用错的了!!

    点击上方“全栈程序员社区”,星标公众号 重磅干货,第一时间送达 作者:liuxuzxx juejin.cn/post/6844904064212271117 介绍 今天使用Idea…

    2021年6月27日
    91

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号