Python中collections.deque数据结构的初始化方法__init__()详细指南
发布时间:2023-12-24 12:06:35
在Python中,collections.deque是一个双端队列数据结构,它能够高效地从两端添加或删除元素。collections.deque类使用了循环双端缓冲区,因此在队首和队尾添加或删除元素的时间复杂度为O(1)。
collections.deque类的初始化方法__init__()有两种常用的用法:
1. __init__(self, iterable=None, maxlen=None):通过可迭代对象初始化一个双端队列。可迭代对象中的元素将按照顺序添加到双端队列。可选参数maxlen用于限制双端队列的最大长度。
2. __init__(self, maxlen=None):通过指定最大长度来初始化一个空的双端队列。
下面是两种用法的详细说明和示例:
1. __init__(self, iterable=None, maxlen=None)
- iterable:可迭代对象,用于初始化双端队列。每个元素将按照顺序添加到双端队列。
- maxlen:可选参数,用于限制双端队列的最大长度。当双端队列长度达到最大长度时,添加新元素将导致另一端的元素被删除。
示例:
from collections import deque # 通过可迭代对象初始化双端队列 iterable = [1, 2, 3, 4, 5] d = deque(iterable) print(d) # 输出:deque([1, 2, 3, 4, 5]) # 限制双端队列的最大长度 maxlen = 3 d = deque(iterable, maxlen) print(d) # 输出:deque([3, 4, 5], maxlen=3)
2. __init__(self, maxlen=None)
- maxlen:可选参数,用于限制双端队列的最大长度。当双端队列长度达到最大长度时,添加新元素将导致另一端的元素被删除。
示例:
from collections import deque # 初始化一个空的双端队列 d = deque() print(d) # 输出:deque([]) # 限制双端队列的最大长度 maxlen = 3 d = deque(maxlen=maxlen) print(d) # 输出:deque([], maxlen=3)
上述示例中,我们首先导入collections模块的deque类。然后,通过传递可迭代对象来初始化一个双端队列,或者通过指定最大长度来初始化一个空的双端队列。在示例中,我们展示了包括和不包括最大长度参数的初始化方法,并打印了最终的双端队列内容。
