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

Python中collections.deque类的初始化方法__init__()解析

发布时间:2023-12-24 12:07:13

collections.deque是Python标准库中的一个双端队列(deque)类,可以在队列两端快速插入和删除元素。它的初始化方法__init__()用于创建一个新的deque对象。

deque的初始化方法有两种方式:无参数和有参数。

无参数的初始化方法创建一个空的deque对象,使用方式如下:

import collections

d = collections.deque()

使用无参数初始化方法创建的deque对象是一个空的双端队列,可以使用append()方法在队列的一端添加元素,使用pop()方法从队列的一端取出元素。

有参数的初始化方法创建一个deque对象,并将参数中的可迭代对象的元素添加到deque中,使用方式如下:

import collections

d = collections.deque(iterable)

其中,iterable是一个可迭代对象,如列表、元组等。使用有参数初始化方法创建的deque对象,会将可迭代对象的元素按顺序添加到deque中,可以通过左右正或负索引访问和操作deque中的元素。

下面通过例子更详细地解析collections.deque的初始化方法__init__()。

例子1:无参数初始化方法

import collections

d = collections.deque()
print(d)  # 输出:deque([])
print(len(d))  # 输出:0

d.append(1)
d.append(2)
d.append(3)
print(d)  # 输出:deque([1, 2, 3])
print(len(d))  # 输出:3

print(d.pop())  # 输出:3
print(d)  # 输出:deque([1, 2])
print(len(d))  # 输出:2

在例子1中,通过无参数初始化方法创建了一个空的deque对象d。之后,使用append()方法在队列的一端依次添加了元素1、2、3。打印d的结果为deque([1, 2, 3]),打印len(d)的结果为3。使用pop()方法从队列的一端取出了一个元素,并打印出来。此时,d的结果为deque([1, 2]),len(d)的结果为2。

例子2:有参数初始化方法

import collections

d = collections.deque([1, 2, 3])
print(d)  # 输出:deque([1, 2, 3])
print(len(d))  # 输出:3

print(d[0])  # 输出:1
print(d[-1])  # 输出:3

d.appendleft(0)
d.append(4)
print(d)  # 输出:deque([0, 1, 2, 3, 4])
print(len(d))  # 输出:5

在例子2中,通过有参数初始化方法创建了一个deque对象d,并将[1, 2, 3]添加到了deque中。打印d的结果为deque([1, 2, 3]),打印len(d)的结果为3。可以使用左正索引d[0]访问第一个元素,输出结果为1;使用右正索引d[-1]访问最后一个元素,输出结果为3。使用appendleft()方法在队列的左端添加元素0,使用append()方法在队列的右端添加元素4。打印d的结果为deque([0, 1, 2, 3, 4]),打印len(d)的结果为5。

通过上述例子,我们了解了collections.deque类的初始化方法__init__()的用法和功能。无参数初始化方法创建一个空的deque对象,有参数初始化方法创建一个deque对象,并将参数中的可迭代对象的元素添加到deque中。我们可以根据具体的需求选择使用这两种初始化方法。