首页 > 编程语言 >Python collections详细介绍及实例

Python collections详细介绍及实例

时间:2024-03-13 18:45:24浏览次数:27  
标签:输出 示例 Python Counter 实例 collections print 字典

Python的collections库提供了许多有用的数据结构,这些数据结构是对内建数据类型的补充。以下是一些collections库中主要数据结构的详细介绍和示例:

  1. Counter

    Counter是一个字典子类,用于计数可哈希对象。常用于统计字符出现的次数、列表中元素出现的次数等。

    示例:

    from collections import Counter  
     
    # 统计字符出现的次数  
    c = Counter('gallahad')  
    print(c)  # 输出:Counter({'a': 3, 'l': 2, 'g': 1, 'h': 1, 'd': 1})  
     
    # 统计列表中元素出现的次数  
    lst = ['apple', 'banana', 'apple', 'orange', 'banana', 'apple']  
    c = Counter(lst)  
    print(c)  # 输出:Counter({'apple': 3, 'banana': 2, 'orange': 1})
    
  2. defaultdict

    defaultdict是一个字典子类,它覆盖了字典的一个方法以提供一个默认值供字典项查找。当请求的键在字典中不存在时,defaultdict将使用一个函数自动创建它。

    示例:

    from collections import defaultdict  
     
    # 当键不存在时,默认值为0  
    d = defaultdict(int)  
    for k in 'abcd':  
        d[k] += 1  
    print(d)  # 输出:defaultdict(<class 'int'>, {'a': 1, 'b': 1, 'c': 1, 'd': 1})
    
  3. OrderedDict

    OrderedDict是一个字典子类,它保持它的键值对的插入顺序。一个OrderedDict将记住元素被第一次插入的顺序。如果一个新的元素覆盖了已经存在的键,原始插入位置将保持不变。

    示例:

    from collections import OrderedDict  
     
    d = OrderedDict()  
    d['first'] = 1  
    d['second'] = 2  
    d['third'] = 3  
    d['last'] = 4  
    print(d)  # 输出顺序和插入顺序相同
    
  4. namedtuple

    namedtuple是一个函数,它生成元组子类,这些子类有命名的字段。就像普通的元组一样,namedtuple是不可变的。

    示例:

    from collections import namedtuple  
     
    # 定义一个具有x和y属性的Point类  
    Point = namedtuple('Point', ['x', 'y'])  
    p = Point(11, y=22)  
    print(p[0] + p[1])  # 输出:33
    
  5. deque

    deque是一个双端队列,它具有线程安全,内存高效的添加(append)和弹出(pop),从两端都可以操作,并且具有有限的长度。

    示例:

    from collections import deque  
     
    d = deque('ghi')  # 输出deque(['g', 'h', 'i'])  
    d.append('j')     # 在右边添加一个新元素  
    d.appendleft('f') # 在左边添加一个新元素  
    print(d)          # 输出:deque(['f', 'g', 'h', 'i', 'j'])
    
  6. ChainMap

    ChainMap是一个字典类,它可以将多个字典看作一个单一字典,实现了一种逻辑上的而非物理上的合并。

    示例:

    from collections import ChainMap  
     
    d1 = {'a': 1, 'b': 2}  
    d2 = {'b': 2, 'c': 3}  
    d3 = {'c': 3, 'd': 4}  
     
    # 合并三个字典  
    d = ChainMap(d1, d2, d3)  
    print(d)  # 输出:ChainMap({'a': 1, 'b': 2}, {'b': 2, 'c': 3}, {'c': 3, 'd': 4})  
    print(d['a'])  # 输出:1  
    print(d['b'])  # 输出:2,注意这里的值是第一个找到的b键对应的值  
    print(d['c'])  # 输出:3  
    print(d['d'])  # 输出:4
    

collections库中的数据结构功能丰富,为Python提供了更多样化的数据处理能力。上述数据结构都设计得相对简洁和高效,通常能够提供更好的性能和更方便的用法。

标签:输出,示例,Python,Counter,实例,collections,print,字典
From: https://www.cnblogs.com/ydswin/p/18071298

相关文章

  • 运维常用的Python第三方模块及实例
    在运维工作中,Python是一种非常流行的脚本语言,因为它具有简洁的语法、丰富的库和跨平台的能力。运维工程师经常使用Python来编写自动化脚本,以简化日常任务。以下是一些运维常用的Python第三方模块及其示例:paramiko-用于SSH连接和执行命令。示例:importparamikossh=par......
  • python内置函数 C
    python内置函数CPython解释器内置了很多函数和类型,任何时候都能使用。C名称描述callable检查一个对象是否是可调用的。chr将整数(表示Unicode码点)转换为对应的字符。classmethod将一个方法转变为类方法。compile将源代码字符串编译为字节码对象。complex创建复数。call......
  • python内置函数 A
    python内置函数APython解释器内置了很多函数和类型,任何时候都能使用。A名称描述abs返回一个数的绝对值。aiter返回对象的异步迭代器。all所有元素均为真值(或可迭代对象为空)则返回True。anext获取异步迭代器中的下一个异步项。any任一元素为真值则返回True。ascii返......
  • Python 内置模块及实例
    Python有许多内置模块,这些模块提供了各种功能,如数学运算、文件操作、日期和时间处理、数据压缩等。以下是一些常用内置模块及其简单实例:math-提供数学函数和常量。实例:importmathprint(math.sqrt(16))#输出:4.0print(math.pi)#输出:3.1415926535897......
  • L2-033 简单计算器(Python)
    作者 陈越单位 浙江大学本题要求你为初学数据结构的小伙伴设计一款简单的利用堆栈执行的计算器。如上图所示,计算器由两个堆栈组成,一个堆栈 S1​ 存放数字,另一个堆栈 S2​ 存放运算符。计算器的最下方有一个等号键,每次按下这个键,计算器就执行以下操作:从 S1​ 中弹......
  • Python 函数的参数传递 *args和 **kwargs
    知识点:在函数调用时,*会以单个元素的形式解包一个元祖,使其成为独立的参数。在函数调用时,**会以键/值对的形式解包一个字典,使其成为独立的关键字参数。 deff(a,*args):print(args)f(1,2,3,4)​```输出为:(2,3,4)​```虽然传入1,2,3,4,但是解包为(1),(2,3,4),其中a是1......
  • 【分享】记一次项目迁移(docker java | docker python)
    项目:前端Vue3,后端Python+Java,数据库Redis+MySQL原先部署在centos7里面的,使用的宝塔面板部署的,还算方便。但是服务器要到期了,要将项目迁移到另外一台服务器。另外一台服务器是opencloudos+1plane本来想构建一个jdk1.8+python3.12+Nodejs环境的镜像奈何本人没学过docker,操作起......
  • python面试题
    1、字符串最后一个单词的长度importsysstr=input()    //输入字符串strarr=str.split("")//以空格分割字符串并将结果存入数组arrn=len(arr)-1  //获取数组最后一个元素的索引print(len(arr[n])) //打印最后一个元素arr[n]的长度即为最后一个......
  • 【Python使用】嘿马头条完整开发md笔记第1篇:课程简介,ToutiaoWeb虚拟机使用说明【附代
    嘿马头条项目从到完整开发笔记总结完整教程(附代码资料)主要内容讲述:课程简介,ToutiaoWeb虚拟机使用说明,Pycharm远程开发,产品与开发,数据库1产品介绍,2原型图与UI图,3技术架构,4开发。OSS对象存储,七牛云存储,CDN,缓存。缓存,缓存架构,缓存数据,缓存有效期与淘汰策略,缓存模式缓存数据的......
  • Python简介与环境搭建
    文章目录前言简介Python环境搭建手动添加系统环境变量PyCharm安装创建一个项目安装汉化插件前言  本专栏用来记录个人学习Python的过程,也希望大家可以通过该专栏轻松入手Python。废话不多说,就让我们开始吧。简介  Python由荷兰国家数学与计算机科学研究中心......