zoukankan      html  css  js  c++  java
  • python模块之collections模块

      collections模块

      提供了一些额外的数据类型,供我们使用。

      namedtuple:命名元组

    from collections import namedtuple
    # 命名元组 namedtuple(typename, field_names) typename元组的名称  field_names元组中元素的名称
    ret = namedtuple('zxc', ['x', 'y'])
    print(ret)  # <class '__main__.zxc'>
    p = ret(1, 2)  # 按顺序添加元素
    p1 = ret(x=3, y=4)  # 按名称添加元素
    print(p)    # zxc(x=1, y=2)
    print(p1)    # zxc(x=3, y=4)
    print(p.x)  # 1
    print(p.y)  # 2

      

      deque:双向队列

      介绍双向队列之前,先说明一下队列是什么。队列是一种先进先出的数据结构,先放进去的要先取出。

    import queue
    q = queue.Queue()
    q.put(1)    # put 给队列中添加元素
    q.put(2)
    q.put(3)
    print(q.get())  # get 取出队列中的元素
    print(q.get())
    print(q.get())
    print(q.qsize())  # 获取当前队列的元素个数
    队列

       双向队列就是可以在前或后进行添加和取出操作的队列,原则也是一样,先进先出。

    from collections import deque
    # deque 双向队列
    dp = deque()   # 双向队列 前后都可以添加元素
    dp.appendleft('')   # 在队列前面添加元素
    dp.append('')       # 在队列后面添加元素
    print(dp)  # deque(['前', '后'])
    print(dp.popleft())  # 相当于print(dp[0])   # 在队列前面取元素
    print(dp.pop())  # 相当于print(dp[-1])     # 在队列后面添加元素
    print(dp.index(''))   # 获取队列中某元素的索引 不存在报错

      OrderedDict:有序字典

    from collections import OrderedDict
    # OrderedDict 有序的字典
    Od = OrderedDict([('k1', 'v1'), ('k2', 'v2'), ('k3', 'v3')])
    print(Od)  # OrderedDict([('k1', 'v1'), ('k2', 'v2')])
    print(Od.get('k1'))  # 相当于print(Od['k1'])
    for k in Od:   # 循环打印键  有序
        print(k)

      defaultdict:默认字典

    from collections import defaultdict
    # 默认字典 在字典还没有添加键值对时,就指定了默认值,添加的键在不赋值的情况下使用默认值
    dic = defaultdict(list)  # 参数必须是可调用的对象
    dic1 = defaultdict(lambda: 3)
    print(dic['k1'])  # []
    print(dic1['key'])  # 3
    dic['k2'].append(1)
    dic['k3'] = 'v3'   # 直接赋值就不使用默认值
    print(dic)  # defaultdict(<class 'list'>, {'k1': [], 'k2': [1], 'k3': 'v3'})
  • 相关阅读:
    一个误操作,导致mysql所有表打不开,我是不是应该删库跑路?非著名喷子
    SqlServer 一些跟时间相关的东西
    C# 在代码里调用其他Webapi
    Typroa + smms-uploader 实现上传图片到 SM.MS 图床
    Redis哨兵模式
    给 Git 仓库瘦身,删除大文件的版本控制
    修复 UEditor 上传视频的相关问题
    MongoDB 海量数据高效读写
    .NET 5中 Autofac 的使用
    Dapper 的 AspNetCore 扩展包
  • 原文地址:https://www.cnblogs.com/zxc-Weblog/p/8275999.html
Copyright © 2011-2022 走看看