Python中collections.deque的用法及示例
发布时间:2023-12-15 16:55:57
在Python的collections模块中,提供了一个双端队列类deque。deque是一种具有队列和栈的操作特性的数据结构,可以从两端进行数据的插入和删除操作。deque类提供了高效的线程安全的双端操作,适用于需要高效地在两端插入和删除元素的场景。
使用deque类需要先导入collections模块,然后创建一个deque对象。deque对象的初始化参数可以是一个可迭代对象,如列表、元组等,也可以为空。下面是一个使用空参数初始化的deque对象的例子:
from collections import deque d = deque()
接下来,我们可以使用deque对象的方法来执行相关操作。
1. append(element):在尾部插入元素。示例:
d.append(1) d.append(2) d.append(3)
2. appendleft(element):在头部插入元素。示例:
d.appendleft(0)
3. pop():删除并返回尾部的元素。示例:
x = d.pop() print(x) # 输出3
4. popleft():删除并返回头部的元素。示例:
x = d.popleft() print(x) # 输出0
5. extend(iterable):在尾部扩展一个可迭代对象。示例:
d.extend([4, 5, 6])
6. extendleft(iterable):在头部扩展一个可迭代对象。示例:
d.extendleft([-1, -2, -3])
注意扩展的元素的顺序和可迭代对象的顺序是相反的。
7. remove(element):删除指定的元素。示例:
d.remove(2)
8. rotate(n):将队列向右循环移动n步,n可以是负数。示例:
d.rotate(1)
以上就是deque类的常用方法,下面是一个完整的示例:
from collections import deque d = deque() d.append(1) d.append(2) d.append(3) d.appendleft(0) x = d.pop() print(x) # 输出3 x = d.popleft() print(x) # 输出0 d.extend([4, 5, 6]) d.extendleft([-1, -2, -3]) d.remove(2) d.rotate(1) print(d) # 输出deque([-3, -2, -1, 1, 4, 5, 6])
通过使用deque类,我们可以方便地进行高效的双端操作,并且还可以有效地在队列的两端插入和删除元素。这对于需要频繁进行插入和删除操作的情况下,可以提高程序的性能。
