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
模块的更多信息。**