Python - 集合模块(Collections Module)

2023-09-17 22:17:08

集合模块提供了内置容器数据类型(如列表、元组和字典)的替代方法。

namedtuple()

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

此函数的一般用法是:

签名:

collections.namedtuple(type_name, field-list)

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

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

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

s1 = student("Imran", 21, 98)
print(s1.name)
print(s1.age)
print(s1.marks)
print(s1[0])
print(s1[1])
print(s1[2])

该示例创建student元组的对象,并使用点表示法s1.name和索引s1[0]访问字段的值。

OrderedDict()

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

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)

输出:

A 65
C 67
B 66
D 68

遍历字典后,对将按其插入顺序出现。

deque() 

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

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

了解有关collections module in Python docs的更多信息。

本文内容总结: