总结collections.deque__init__()方法的用法和特点
collections.deque是Python标准库collections中的一个类,它可以说是一个双向队列的实现。deque全称为double-ended queue,也就是双端队列。双端队列是允许从两端增加和删除元素的数据结构,可以在队列的开头和结尾执行常见的入队和出队操作。
在使用deque之前,需要首先导入collections模块:import collections。
deque提供了初始化的方法:collections.deque([iterable[, maxlen]])。
deque的初始化方法允许传入可迭代的参数,该参数将用作初始元素。也可以不传参数,生成一个空的双端队列。
下面是一个使用初始化方法的例子:
import collections # 初始化一个双端队列 d = collections.deque([1, 2, 3, 4, 5]) print(d) # 输出:deque([1, 2, 3, 4, 5])
在这个例子中,我们传入了一个可迭代的参数[1, 2, 3, 4, 5],生成了一个包含这些元素的双端队列。
除了传入可迭代的参数之外,还可以传入一个可选的maxlen参数,用于限制队列的长度。当队列的长度达到了maxlen限制时,再向队列中添加新的元素时,会自动从队列的另一端删除元素。如果不传入maxlen参数,则队列的长度没有限制。
下面是一个使用maxlen参数的例子:
import collections # 初始化一个双端队列,限制队列最大长度为3 d = collections.deque(maxlen=3) # 向队列中添加元素 d.append(1) d.append(2) d.append(3) print(d) # 输出:deque([1, 2, 3]) # 再向队列中添加一个元素,此时队列已满,从队列的另一端删除一个元素 d.append(4) print(d) # 输出:deque([2, 3, 4])
在这个例子中,我们初始化一个最大长度为3的双端队列。当队列的长度达到最大限制时,再向队列中添加元素时,会自动从队列的另一端删除一个元素。在 次添加元素后,队列的长度为1,依次类推。
总结:
deque是Python标准库collections中的一个类,它实现了一个双向队列的数据结构。
deque可以通过collections.deque([iterable[, maxlen]])来初始化,可接受一个可迭代的参数作为初始的元素,并可以选择传入maxlen参数来限制队列的长度。
deque的方法和列表类似,可以在队列的两端执行入队和出队操作。
deque在插入和删除元素的时间复杂度为O(1),比列表的时间复杂度要低,特别适用于队列、栈等数据结构的实现。
