您的位置:

Python collections模块

collections 模块为内置容器数据类型(如 list、tuple 和 dict)提供了替代方案。

namedtuple()

namedtuple()函数返回一个带有命名字段的类似元组的对象。这些字段属性可以通过查找和索引来访问。

该功能的一般用法是:

Signature:

collections.namedtuple(type_name, field-list)

下面的语句声明了一个学生类,该类以姓名、年龄和标记作为字段。

Example: Declare a Named Tuple

>>> import collections
>>> student = collections.namedtuple('student', [name, age, marks]) 

要创建此名称的新对象,请执行以下操作:

Example: Create Object of Named Tuple

>>> s1 = student("Imran", 21, 98) 

属性查找可以访问字段的值:

Example: Access Named Tuple

>>> s1.name
'Imran' 

或者通过索引:

Example: Access Named Tuple

>>>s1[0]
'Imran' 

OrderedDict()

OrderedDict()函数类似于 Python 中的普通字典对象。但是,它会记住首次插入键的顺序。

Example: Ordered Dictionary

import collections

d1 = collections.OrderedDict()
d1['A'] = 65
d1['C'] = 67
d1['B'] = 66
d1['D'] = 68

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

Output

A 65
C 67
B 66
D 68 

在遍历字典时,对将按照它们插入的顺序出现。

德格()

deque 对象支持从列表的任一端追加和弹出。它比普通的列表对象更节省内存。在普通列表对象中,删除任何项目都会导致右侧的所有项目向左移动一个索引。因此,它非常慢。

Example: Deque

>>> q=collections.deque([10,20,30,40])
>>> q.appendleft(0)
>>> q
deque([0, 10, 20, 30, 40])
>>> q.append(50)
>>> q
deque([0, 10, 20, 30, 40, 50])
>>>q.pop()
50
>>> q
deque([0, 10, 20, 30, 40])
>>> q.popleft()
0
>>> q
deque([10, 20, 30, 40]) 

了解 Python 文档中collections模块的更多信息。**