Python教程-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
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 类用于将多个字典分组在一起以创建单个列表。链接的字典存储在列表中,它是公共的,可以通过 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 对象将字典作为属性访问。它提供了与字典一起工作的便利性。
它提供以下属性。
data - 用于存储 UserDict 类的内容的真实字典。
UserList 对象
UserList 表现为围绕列表对象的包装器类。当我们想要向列表中添加新功能时,它很有用。它提供了与列表一起工作的便利性。
它提供以下属性。
data - 用于存储 User 类的内容的真实列表。
UserString 对象
UserList 表现为围绕字符串对象的包装器类。可以通过使用 UserString 对象将字符串作为属性访问。它提供了与字符串一起工作的便利性。
它提供以下属性。
data - 用于存储 UserString 类的内容的真实 str 对象。