欢迎访问宙启技术站
智能推送

Python中collections.deque的__init__()构造函数使用指南

发布时间:2023-12-24 12:08:48

collections.deque是Python中的双端队列实现,可以在队列两端进行快速插入和删除操作。deque可以被用作一个队列(先入先出)和堆栈(后入先出)。

deque对象的构造函数__init__()有三个参数可选,它们分别是iterable、maxlen和appendleft。下面将详细介绍这三个参数的使用方法,并配上相应的使用例子。

1. iterable:可选参数,用于初始化双端队列的元素。这些元素将按照迭代器的顺序添加到队列的右侧。如果没有指定iterable参数,默认创建一个空的双端队列。

示例:

   from collections import deque
   
   # 创建一个双端队列,包含初始元素1、2、3
   d = deque([1, 2, 3])
   print(d)  # 输出: deque([1, 2, 3])
   

2. maxlen:可选参数,指定双端队列的最大长度。如果没有指定maxlen参数,默认长度为无限大,即队列可以无限增长。

示例:

   from collections import deque
   
   # 创建一个最大长度为3的双端队列
   d = deque(maxlen=3)
   
   # 添加元素到队列的右侧
   d.append(1)
   d.append(2)
   d.append(3)
   print(d)  # 输出: deque([1, 2, 3], maxlen=3)
   
   # 再次添加一个元素,超出最大长度时,会自动从队列的左侧删除元素
   d.append(4)
   print(d)  # 输出: deque([2, 3, 4], maxlen=3)
   

3. appendleft:可选参数,指定是否将元素添加到队列的左侧。默认为False,即默认将元素添加到队列的右侧。

示例:

   from collections import deque
   
   # 创建一个双端队列
   d = deque([1, 2, 3])
   
   # 添加元素到队列的左侧
   d.appendleft(0)
   print(d)  # 输出: deque([0, 1, 2, 3])
   

除了构造函数的参数,collections.deque还提供了一些常用的方法,如append()、appendleft()、pop()、popleft()等,用于在队列两端进行元素的插入和删除操作。

以下是一个较为完整的示例,展示了collections.deque的使用方法:

from collections import deque

# 创建一个双端队列
d = deque([1, 2, 3])

# 向队列的右侧添加元素
d.append(4)
print(d)  # 输出: deque([1, 2, 3, 4])

# 向队列的左侧添加元素
d.appendleft(0)
print(d)  # 输出: deque([0, 1, 2, 3, 4])

# 从队列的右侧删除元素,并返回该元素
x = d.pop()
print(x)  # 输出: 4
print(d)  # 输出: deque([0, 1, 2, 3])

# 从队列的左侧删除元素,并返回该元素
y = d.popleft()
print(y)  # 输出: 0
print(d)  # 输出: deque([1, 2, 3])

通过阅读上述例子,您能对collections.deque的__init__()构造函数有一个基本的了解。根据自己的需要,您可以选择合适的参数进行实例化,并使用其他方法进行队列的插入和删除操作。