📜  Python collection模块

📅  最后修改于: 2020-10-28 01:06:00             🧑  作者: Mango

Python collection模块

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

Python collection模块在其2.4版本中首次引入。

collection模块有不同类型,如下所示:

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

计数器()

Python计数器是字典对象的子类,可帮助计算可哈希对象。

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'])

链图对象

链图类用于将多个字典分组在一起以创建一个列表。链接的字典存储在列表中,它是公共的,可以由map属性访问。考虑以下示例。

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对象

UserDict充当字典对象周围的包装器。可以使用UserDict对象将字典作为属性进行访问。它提供了使用字典的便捷性。

它提供以下属性。

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

用户列表对象

UserList充当列表对象周围的包装器类。当我们想向列表中添加新功能时,这很有用。它提供了使用字典的便捷性。

它提供以下属性。

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

UserString对象

UserList充当列表对象周围的包装器类。可以使用UserString对象将字典作为属性进行访问。它提供了使用字典的便捷性。

它提供以下属性。

数据-一个真正的str对象用于存储UserString类的内容。