python3之模块collections

Posted Py.qi

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python3之模块collections相关的知识,希望对你有一定的参考价值。

1.计数器(counter)

counter是对字典的方法,用来追踪值的出现次数;具备字典的所有功能和自己的功能。

>>> from collections import Counter
>>> d2 = Count
>>> d2 = Counter(abbcccddd)  #对值计数
>>> print(d2)
Counter({d: 3, c: 3, b: 2, a: 1})
>>> print(type(d2))
<class collections.Counter>
>>> d2 = Counter(abbcccddd)
>>> for i in d2.elements():    #计数元素迭代器
...   print(i)
... 
b
b
a
d
d
d
c
c
c
>>> d2.clear()   #清空元素
>>> print(d2)
Counter()

>>> d3 = d2.copy()  #拷贝
>>> d3
Counter({d: 3, c: 3, b: 2, a: 1})

>>> d2.update(ddffffff)   #更新
>>> d2
Counter({f: 6, d: 5, c: 3, b: 2, a: 1})

>>> d2.subtract(fffff)  #减去元素个数
>>> d2
Counter({d: 5, c: 3, b: 2, a: 1, f: 1})

>>> d4 = d2.pop(f)  #提取dict的key
>>> d4
1
>>> d2
Counter({d: 5, c: 3, b: 2, a: 1})

2、有序字典(OrderedDict)

OrderedDict是对字典的补充,它可以记住字典元素添加的顺序。

>>> from collections import OrderedDict
>>> dic1 = OrderedDict({k1:v1,k2:v2,k4:v4,k3:v3})
>>> dic1    #创建有序列的字典
OrderedDict([(k4, v4), (k1, v1), (k2, v2), (k3, v3)])
>>> print(type(dic1))
<class collections.OrderedDict>
>>> dic1.popitem()    #默认提取最后要给key
(k3, v3)
>>> dic1
OrderedDict([(k4, v4), (k1, v1), (k2, v2)])
>>> dic1.move_to_end(k4)   #将指定key移到最后
>>> dic1
OrderedDict([(k1, v1), (k2, v2), (k4, v4)])

3、默认字典(defaultdict)

defaultdict是对字典的类型补充,它默认给字典的值设置了一个类型

>>> from collections import defaultdict
>>> dict1 = defaultdict(list)   #创建默认字典
>>> dict1
defaultdict(<class list>, {})
>>> print(type(dict1))
<class collections.defaultdict>
>>> for i in range(20):  #实例
...   if i%2 == 0:
...     dict1[k1].append(i)
...   else:
...     dict1[k2].append(i)
... 
>>> dict1
defaultdict(<class list>, {k1: [0, 2, 4, 6, 8, 10, 12, 14, 16, 18], k2: [1, 3, 5, 7, 9, 11, 13, 15, 17, 19]})

4、可命名元组(namedtuple)

根据namedtuple可以创建一个包含tuple所有功能以及其他功能的类型

>>> from collections import namedtuple
>>> tup1 = namedtuple(tup1,[x,y,z,u])  #创建可命名元组
>>> obj = tup1(111,22,333,4444)  #创建对象
>>> print(obj.x)   #输出对象序列的值
111
>>> print(obj.y)
22
>>> print(obj.z)
333
>>> print(obj.u)
4444

 

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

python3 collections数据类型模块

Python3 关于excel 文件格式xls之读取写入和追加

Python3之模块及包的导入

金蝶handler中 collection 代码片段理解

python--模块之collection

Python3中collections.OrderedDict介绍