zoukankan      html  css  js  c++  java
  • 模块:collections,Python中的扩展数据类型

    namedtuple:生成一个可以使用名字来访问的tuple
    from collections import namedtuple
    point = namedtuple('point',['x','y','z','r'])
    p = point(1,2,3,4)
    print(p.z)
    print(p.x)
    print(p.y)
    print(p.r)
    print(p)
    
    打印:
    3
    1
    2
    4
    point(x=1, y=2, z=3, r=4)
    deque:双队列 一个可迭代的 取一个少一个 只能从最前面或者最后面取,可以从最前面、最后面添加,可以插队添加

    from collections import deque
    lis = deque([1,2,3])
    lis.append(0) #从最前面添加一个元素
    lis.appendleft(4) #从最后面添加一个元素
    print(lis.pop())#取出最前面的一个元素
    print(lis.popleft())#取出最后面的一个元素
    lis.insert(3,'a')#指定位置添加一个元素
    print(lis)
    
    print('__iter__' in dir(deque))#可迭代的
    
    for i in lis:
        print(i)
    
    打印:
    0
    4
    deque([1, 2, 3, 'a'])
    True
    1
    2
    3
    a
     
    counter:计算次数 参数为可迭代的 返回元素出现的次数
    from collections import Counter
    number = Counter([1,1,1,2,1,2,1,3,3,4,5,1,4])
    print(number)
    
    #打印:
    Counter({1: 6, 2: 2, 3: 2, 4: 2, 5: 1})
    defaultdict:带默认值的字典 使用正常下的字典时时,如果引用的Key不存在,就会抛出KeyError。defaultdict可以设置默认值,如果key不存在,会给他一个设定的默认值
    from collections import defaultdict
    lis = defaultdict(lambda :'默认空的值')
    lis['key']
    print(lis)
    
    #打印:
    defaultdict(<function <lambda> at 0x0000026D959C8048>, {'key': '默认空的值'})
    
    
    # 例子:有如下值集合 [11,22,33,44,55,66,77,88,99,90...],将所有大于 66 的值保存至字典的第一个key中,将小于 66 的值保存至第二个key的值中。
    
    from collections import defaultdict
    lis = [11,22,33,44,55,66,77,88,99,90]
    new_lis = defaultdict(list)
    for i in lis:
        if i > 66:
            new_lis['k1'].append(i)
        else:
            new_lis['k2'].append(i)
    print(new_lis)
    
    #打印:
    defaultdict(<class 'list'>, {'k2': [11, 22, 33, 44, 55, 66], 'k1': [77, 88, 99, 90]})
    OrderedDict:有序字典
    from collections import OrderedDict
    dic1 ={('a', 1), ('b', 2), ('c', 3), ('e', 4), ('d', 5)}
    print(dic1)#无序的
    
    dic = OrderedDict()
    dic['a'] = 1
    dic['b'] = 2
    dic['c'] = 3
    dic['e'] = 4
    dic['d'] = 5
    print(dic) #有序的 Key会按照插入的顺序排列,不是Key本身排序
    
    #打印:
    {('e', 4), ('a', 1), ('d', 5), ('b', 2), ('c', 3)}
    OrderedDict([('a', 1), ('b', 2), ('c', 3), ('e', 4), ('d', 5)])
  • 相关阅读:
    逆向入门之路1 关于逆向工程
    EC笔记:第三部分:14、在资源管理类中小心Copying行为
    vuex最简单、最详细的入门文档
    前端加密的几种常见方式
    NAS星云链 入门之从零开发第一个DAPP
    chrome 不支持12px以下字体为题的解决
    input checkbox 多选 验证
    你对javascript的原生操作或者工具了解多少呢?
    ionic2-键盘覆盖输入框和返回键问题解决方案
    ionic2 手风琴效果
  • 原文地址:https://www.cnblogs.com/aizhinong/p/11424641.html
Copyright © 2011-2022 走看看