collectons模块

Posted 韩乾

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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

 

以上是关于collectons模块的主要内容,如果未能解决你的问题,请参考以下文章

如何有条件地将 C 代码片段编译到我的 Perl 模块?

CTS测试CtsWindowManagerDeviceTestCases模块的testShowWhenLockedImeActivityAndShowSoftInput测试fail项解决方法(代码片段

如何将字符串数据从活动发送到片段?

argparse 代码片段只打印部分日志

nodejs常用代码片段

常用python日期日志获取内容循环的代码片段