Python中collections.deque类的初始化方法__init__()解析
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中。我们可以根据具体的需求选择使用这两种初始化方法。
