• python3 collections数据类型模块


    collections模块

      在内置数据类型(dict、list、set、tuple)的基础上,collections模块还提供了几个额外的数据类型:Counter、deque、defaultdict、namedtuple和OrderedDict等。

      1.namedtuple: 生成可以使用名字来访问元素内容的tuple

      2.deque: 双端队列,可以快速的从另外一侧追加和推出对象

      3.Counter: 计数器,主要用来计数

      4.OrderedDict: 有序字典

      5.defaultdict: 带有默认值的字典

    1.namedtuple

    #1 namedtuple
    from collections import namedtuple
    Point = namedtuple('point',['x','y'])
    p = Point(110,365)
    print(p)
    '''结果:
    point(x=110, y=365)
    '''
    print(p.x,p.y)
    '''结果:
    110 365
    '''

    2.deque

    #2 deque
    #deque是为了高效实现插入和删除操作的双向列表,适合用于队列和栈
    from collections import deque
    q = deque(['a','b','c'])
    q.append('x')
    q.appendleft('y')
    print(q)
    '''结果:
    deque(['y', 'a', 'b', 'c', 'x'])
    '''
    #deque除了实现list的append()和pop()外,还支持appendleft()和popleft(),这样就可以非常高效地往头部添加或删除元素。

    3.OrderedDict

    #3 OrderedDict有序字典
    from collections import OrderedDict
    d = dict([('a',1),('b',2),('c',3)])
    print(d)    #dict的key是无序的
    '''结果:
    {'c': 3, 'b': 2, 'a': 1}
    '''
    
    od = OrderedDict([('b', 2), ('c', 3), ('a', 1)])
    print(od)   #OrderedDict的key是有序的
    '''结果:
    OrderedDict([('b', 2), ('c', 3), ('a', 1)])
    '''
    
    #OrderedDict的其它用法和Dict无序字典一样,唯一不一样就是orderedDict是有序

    4.defaultdict

    #4 defaultdict默认字典
    from collections import defaultdict
    lis = [1,2,3,4,5,6]
    my_dic = defaultdict(list)  #定义一个字典,对应的value类型是list列表
    for i in lis:
        if i % 2 ==0:
            my_dic['k1'].append(i)
        else:
            my_dic['k2'].append(i)
    
    print(my_dic)
    '''结果:
    defaultdict(<class 'list'>, {'k1': [2, 4, 6], 'k2': [1, 3, 5]})
    '''
    
    my_dic2 = defaultdict(lambda : '没有这个Key')   #通过匿名函数定义Key不存在时的返回值
    my_dic2['1'] =1
    print(my_dic2['1'])
    '''结果:
    1
    '''
    print(my_dic2['2'])
    '''结果:
    没有这个Key
    '''
  • 相关阅读:
    Android入门第六篇之ListView (一)
    mysql触发器的作用及语法
    查询记录时rs.previous()的使用
    Microsoft Visual C++ Runtime Library Runtime Error的解决的方法
    Ubuntu中编译链接Opencv应用的简便方式
    24点经典算法
    CMS系统简介(从简介到使用)
    编程学习资源
    Django是什么
    Thinkphp中的自动验证
  • 原文地址:https://www.cnblogs.com/jason-lv/p/8260485.html
Copyright © 2020-2023  润新知