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

    一、定义

    # collections模块  python中的扩展数据类型
    #     起名时不能起和模块相投的模块,因为模块本质就是python文件
    # 列表,元组
    # 字符串
    # 集合(frozen set)
    # 字典
    # 堆栈(先进后出)(没有这种数据类型)
    # 队列(先进先出)(有单独数据类型)(FIFO)

    二、方法

      1.namedtuple,元组命名

    #namedtuple
    #namedtuple('名称','[变量组]')
    from collections import namedtuple
    Point=namedtuple('point',['x','y'])   #前面的point取名无关,后面的列表中就是有几个元素,可以加z之类的
    p=Point(1,2)
    p2=Point(2,1)
    print(p.x)
    print(p.y)
    print(p)
    print(p2)
    # 1
    # 2
    # point(x=1, y=2)
    # point(x=2, y=1)

      举例:扑克花色

    #花色
    Card=namedtuple('card',['suits','number'])
    C1=Card('红心',2)
    print(C1.number)

      2.Queue 队列

    #队列
    import queue
    q=queue.Queue()
    q.put(10)         #放入值可以是其他数据类型,一次只能放一个值
    q.put(5)
    q.put(4)
    print(q)          #一个队列类型的内存地址
    print(q.get())
    print(q.get())
    print(q.get())    #顺序10,5,4
    # print(q.get())  #阻塞,整个程序停住,直到再在队列中放入一个值
    
    print(q.qsize())  #返回3
    #不能循环,只能放入值,取值,查大小

      3.deque

    #双端队列
    #可以插队,Insert方法
    from collections import deque
    deq=deque(['de','me'])
    deq.append('c2')       #从后面放数据
    deq.appendleft('cl')   #从前面放数据
    print(deq)
    deq.insert(1,3)     #在1这个位置插入3,会取代以及定义的
    print(deq.pop())     #取后面的c2
    # deq.pop()          #从后面取
    # deq.popleft()      #从前面取
    print(deq)         #deque([3, 'de'])

      4.OrderDict

    #orderdict   没有索引,但是有序,循环也依旧可以用
    from collections import OrderedDict
    od=OrderedDict([('a',1),('b',2)])
    print(od)
    print(od['a'])
    # OrderedDict([('a', 1), ('b', 2)])
    # 1

      5.defaultdict

    #defaultdict
    # 给一个空字典,先创建defaultdict,所有value可以自定义默认类型(callable)
    from collections import defaultdict
    d=defaultdict(lambda:5)   #要是callable,所以不能直接写值,就用匿名函数
    print(d['k'])

      6.counter  计算字符串中每个字符个数

    #counter
    from collections import Counter
    c=Counter('arwarfdhtgfa')
    print(c)
    # Counter({'a': 3, 'r': 2, 'f': 2, 'w': 1, 'd': 1, 'h': 1, 't': 1, 'g': 1})
    collections模块  python中的扩展数据类型
    起名时不能起和模块相投的模块,因为模块本质就是python文件
    列表,元组
    字符串
    集合(frozen set)
    字典
    堆栈(先进后出)(没有这种数据类型)
    队列(先进先出)(有单独数据类型)(FIFO)
  • 相关阅读:
    用它,只需“拖拉拽”即可轻松创建APP和短信推送规则
    如何通过机智云接口生成设备对应的二维码
    新唐方案分享:基于NUC472开发板的物联网开发,接入机智云
    公告|苹果iOS13升级在即,机智云APP适配指南
    物联网中的数据透传
    多维数组
    pymysql库的学习
    selenium库的学习
    xpath语法和lxml库的学习
    MATLAB 机场价格数据预处理和分析
  • 原文地址:https://www.cnblogs.com/lowislucifer/p/11332258.html
Copyright © 2011-2022 走看看