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

    Counter计数

    a=[1,2,3,2,4,4,3,5,3,5,4,6,4,5,3,5,35,2,3,5,3] 
    from collections import Counter
    Counter(a)                      统计次数
    Counter(a)[3]                   某个值出现的次数
    Counter(a).elements(2)          输出频率最高的两个
    update()                        相加
    subtract()                      相减
                     

     

     

    ChainMap映射多个字典

    a = {'x': 1, 'z': 3 }
    b = {'y': 2, 'z': 4 ,'a':55}
    from collections import ChainMap
    f = ChainMap(a,b)
    f['x'] # 1
    f['y'] # 2 a中没找到,在b中找
    f['z'] # 3 找到就不找了
    f['y'] = 'yyy' # a新增一个键值对,{'x': 1, 'z': 3, 'y': 'yyy'}
    f['d'] = 'rrr' # a新增一个键值对,{'x': 1, 'z': 3, 'd': 'ddd', 'y': 'yyy'}

     

     

    UserDict重写字典

    form collections import UserDict
    class StrKeyDict(UserDict):
        def __missing__(self, key):
            if isinstance(key, str):
                raise KeyError(key)
            return self[str(key)]  # 调用__getitem__方法
        def __contains__(self, key):
            print('contions')
            return str(key) in self.data
        def __setitem__(self, key, item):
            """当key不存在时,调用__missing__方法"""
            self.data['f1'] = 'ttt'
            print(self.data)
            print("key:",key)
            print("item:",item)
            if key not in self.data:
                self.data[str(key)] = item
    f=StrKeyDict()
    f['x'] = 123
    print(f)
    返回:
    {'f1': 'ttt'}
    key: x
    item: 123
    {'x': 123, 'f1': 'ttt'}

     

     

    namedtuple 命名元组

    namedtuple是一个函数,用来创建一个自定义的tuple对象,规定了tuple元素的个数,可以用属性来引用tuple的某个元素。
    >>> from collections import namedtuple
    >>> Point = namedtuple('Point', ['x', 'y'])
    >>> p = Point(11, 22)
    >>> p.x
    11
    >>> p.y
    22
  • 相关阅读:
    python 模块基础介绍
    python 函数基础介绍
    性能测试总结与分享材料
    徒手撸一个简单的RPC框架
    【springcloud】一文带你搞懂API网关
    一次非常有意思的sql优化经历
    MySQL数据库之互联网常用分库分表方案
    后端开发应该掌握的Redis基础
    权限管理模块设计
    基于redis的分布式锁的分析与实践
  • 原文地址:https://www.cnblogs.com/hanqian/p/7152904.html
Copyright © 2011-2022 走看看