码迷,mamicode.com
首页 > 其他好文 > 详细

collectons模块

时间:2017-07-12 01:21:50      阅读:257      评论:0      收藏:0      [点我收藏+]

标签:style   ret   data   1.5   映射   line   模块   from   ons   

 

 

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模块

标签:style   ret   data   1.5   映射   line   模块   from   ons   

原文地址:http://www.cnblogs.com/hanqian/p/7152904.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!