Python collections模块

Python collections模块被定义为用于存储数据集合的容器,例如列表、字典、集合和元组等。引入它是为了改进内置收集容器的功能。

Python collections模块最早是在其 2.4 版本中引入的。

有以下不同类型的collections模块:

namedtuple()

Python namedtuple() 函数返回一个类似元组的对象,并为元组中的每个位置指定名称。它用于消除普通元组中记住元组对象的每个字段的索引的问题。

示例


pranshu = ('James', 24, 'M')
print(pranshu)

输出:

('James', 24, 'M')

OrderedDict()

Python OrderedDict()类似于字典对象,其中键保持插入顺序。如果我们再次尝试插入密钥,该密钥的前一个值将被覆盖。


import collections
d1=collections.OrderedDict()
d1['A']=10
d1['C']=12
d1['B']=11
d1['D']=13

for k,v in d1.items():
print (k,v)

输出:

A 10
C 12
B 11
D 13

defaultdict()

Python defaultdict()被定义为类似字典的对象。它是内置 dict 类的子类。它提供字典提供的所有方法,但将第一个参数作为默认数据类型。


from collections import defaultdict
number = defaultdict(int)
number['one'] = 1
number['two'] = 2
print(number['three'])

输出:

0

Counter()

Python Counter是字典对象的一个子类,它有助于对哈希对象进行计数。


from collections import Counter
c = Counter()
list = [1,2,3,4,5,7,8,5,9,6,10]
Counter(list)
Counter({1:5,2:4})
list = [1,2,4,7,5,1,6,7,6,9,1]
c = Counter(list)
print(c[1])

输出:

3

deque()

Python deque() 是一个双端队列,允许我们从两端添加和移除元素。


from collections import deque
list = ["x","y","z"]
deq = deque(list)
print(deq)

输出:

deque(['x', 'y', 'z'])

ChainMap

一个ChainMap类用于将多个字典组合在一起以创建一个列表。链接字典存储在列表中,并且是公共的,可以通过地图属性进行访问。考虑下面的例子。


from collections import ChainMap
baseline = {'Name': 'Peter', 'Age': '14'}
adjustments = {'Age': '14', 'Roll_no': '0012'}
print(list(ChainMap(adjustments, baseline)))

输出:

['Name', 'Age', 'Roll_no' ]

用户字典对象

用户字典充当字典对象的包装器。字典可以通过使用用户字典对象作为属性来访问。它使使用字典变得容易。

它提供以下属性。

数据 -一个用来存储 UserDict 类内容的真实字典。

用户列表对象

用户列表表现为列表对象的包装类。当我们想要向列表添加新功能时,它非常有用。它使使用字典变得容易。

它提供以下属性。

数据 -真实列表用于存储 User 类的内容。

UserString对象

用户列表表现为列表对象的包装类。字典可以通过使用**UserString**对象作为属性来访问。它使使用字典变得容易。

它提供以下属性。

数据 -一个真实的字符串对象用于存储UserString类的内容。

原文:https://www.javatpoint.com/python-collection-module