• Python模块:collections


    collections模块常用的数据类型:

    (1)namedtuple():   #创建一个自定义的tuple对象,并且规定了tuple元素的个数,并可以用属性而不是索引来引用tuple的某个元素。
    
    from collections import namedtuple
    p = namedtuple('p',['x','y','z'])
    p1 = p(2,3,5)
    print(p1.x,p1.y,p1.z)
    
    输出结果为:
    2 3 5
    (2)deque():   #使用list存储数据时,按索引访问元素很快。由于list是线性存储,数据量大的时候,插入和删除元素效率就很低。deque队列是为了高效的实现插入和删除操作的双向列表,适用于队列和栈。
    
    from collections import deque
    
    li1 = deque([1,2,3,4,5])
    li1.append('a')
    li1.appendleft('m')
    print(li1)
    
    li1.pop()
    li1.popleft()
    print(li1)
    
    
    输出结果为:
    deque(['m', 1, 2, 3, 4, 5, 'a'])
    deque([1, 2, 3, 4, 5])
    (3)defaultdict():   #使用字典的时候,如果key值不存在就会报KeyError错。如果想key不存在时,返回一个默认值,就可以用defaultdict:
    
    from collections import defaultdict
    
    dd = defaultdict(lambda :'not exist!')
    dd['k1'] = '123'
    print(dd['k1'])
    print(dd['k2'])
    
    输出结果为:
    123
    not exist!
    (4有序字典
    
    from collections import OrderedDict
    
    dd = dict([('k1',1),('k2',2),('k3',3)])
    print(dd)
    
    order_dd =OrderedDict([('k1',1),('k2',2),('k3',3)])
    print(order_dd)
    
    输出结果为:
    {'k3': 3, 'k2': 2, 'k1': 1}
    OrderedDict([('k1', 1), ('k2', 2), ('k3', 3)])
    (5)Counter():   #计数器,统计字符串里面所有元素出现次数。
    
    from collections import Counter
    s = "A Counter is a dict subclass for counting hashable objects. It is an unordered collection where elements are stored as dictionary keys and their counts are stored as dictionary values. "
    
    c = Counter(s)
    print(c.most_common(5))   #统计出现次数最多的5个元素
    
    输出结果为:
    [(' ', 30), ('e', 18), ('s', 15), ('a', 13), ('t', 13)]
  • 相关阅读:
    Android数据库升级,数据不丢失解决方案
    Android项目中单实例数据库类,解决database is locked
    Android彩蛋效果,微信彩蛋效果
    Android性能优化
    Unable to execute dex: method ID not in [0, 0xffff]: 65536
    Android下载速度计算
    Android中不混淆类中函数
    Android中Parcelable接口用法
    开启Ubuntu Linux下VirtualBox访问USB功能
    touch移动触屏滑动事件
  • 原文地址:https://www.cnblogs.com/ping-y/p/6203130.html
Copyright © 2020-2023  润新知