一、简介
Deque,即“double-ended queue”的缩写,是一种具有队列和栈的性质的数据结构。而Python中的deque则是一个双向队列,其可以在队列的两端进行数据的插入与删除操作。deque是多线程安全的,同时可以避免一个线程在访问deque的时候,另一个线程的干扰。
二、创建Deque
我们可以通过使用Python标准库中的collections
模块来创建Deque。
from collections import deque
# 创建Deque
d = deque()
print(d)
我们也可以同时将元素传入到deque()方法中,以初始化Deque。
# 创建Deque并初始化
d = deque([1, 2, 3])
print(d)
三、向Deque中添加元素
向Deque中添加元素可以使用append()
和appendleft()
方法,分别用于向deque()的末尾和起始位置添加元素。
from collections import deque
d = deque([1, 2, 3])
print(d)
# 在末尾添加元素
d.append(4)
print(d)
# 在起始位置添加元素
d.appendleft(0)
print(d)
我们也可以使用extend()
和extendleft()
方法,向deque()中批量添加元素。
from collections import deque
d = deque([1, 2, 3])
print(d)
# 批量在末尾添加元素
d.extend([4, 5, 6])
print(d)
# 批量在起始位置添加元素
d.extendleft([-1, 0])
print(d)
四、从Deque中删除元素
从Deque中删除元素可以使用pop()
和popleft()
方法,分别从deque()的末尾和起始位置删除元素。
from collections import deque
d = deque([1, 2, 3])
print(d)
# 从末尾删除元素
d.pop()
print(d)
# 从起始位置删除元素
d.popleft()
print(d)
五、访问Deque中的元素
可以使用下标方式[]
来访问Deque中的元素,下标从0开始。同时,还可以使用rotate()
方法,将Deque中的元素向左或向右轮换指定长度。
from collections import deque
d = deque([1, 2, 3, 4, 5])
print(d)
# 通过下标访问元素
print(d[0])
# 向左轮换1个长度
d.rotate(-1)
print(d)
# 向右轮换2个长度
d.rotate(2)
print(d)
六、总结
Python中的Deque可以高效地进行数据增删操作,同时还支持多线程操作。以上就是关于Python中Deque的用法和实例,包括创建Deque、向Deque中添加和删除元素以及访问Deque等操作的详细介绍。