deque: (double-ended queue,双端队列),是一种具有队列和栈性质的数据结构,双端队列中的元素可以从两端弹出,相比list增加[]运算符重载
#1、append(x) ,将x添加到deque的右侧:
from collections import deque
d = deque("abc")
print(d)
#执行结果: deque(['a', 'b', 'c'])
for ele in d:
print(ele.upper())
d.append('g')
print(d)
#执行结果: deque(['a', 'b', 'c', 'g'])
#2、appendleft(x): 将x添加到deque的左侧
d = deque('abc')
d.appendleft('v')
print(d)
#执行结果:deque(['v', 'a', 'b', 'c'])
#3、clear(): 将deque中的元素全部删除,最后长度为0
d = deque('abc')
d.clear()
print(d)
#执行结果: deque([])
#4、count(x): 返回deque中元素等于x的个数
d = deque('aaabccc')
print(d.count('a'))
#5、extend(iterable): 将可迭代变量iterable中的元素添加至deque的右侧
d = deque('abc')
d.extend('gfh')
print(d)
#执行结果: deque(['a', 'b', 'c', 'g', 'f', 'h'])
#6、extendleft(iterable): 将可迭代变量iterable中的元素添加至deque的左侧,往左侧添加序列的顺序与可迭代变量iterable中的元素相反
d =deque('abc')
d.extendleft('yzw')
print(d)
#执行结果: deque(['w', 'z', 'y', 'a', 'b', 'c'])
#7、pop(): 移除和返回deque中最右侧的元素,如果没有元素,将会报出IndexError;
d = deque('abc')
d.pop()
print(d)
#执行结果: deque(['a', 'b'])
#8、popleft(): 移除和返回deque中最左侧的元素,如果没有元素,将会报出IndexError;
d = deque('abc')
d.popleft()
print(d)
#执行结果: deque(['b', 'c'])
#9、remove(value): 移除每一次出现的value,如果没有找到,将会报出valueError;
d =deque('abc')
#d.remove('d')
#print(d)
#执行结果: ValueError: deque.remove(x): x not in deque
#10、reverse(): 反转deque中的元素,并返回None
d = deque('abc')
print(list(reversed(d)))
#执行结果: ['c', 'b', 'a']
#11、rotate(n): 从右侧反转n步,如果n为负数,则从左侧开始反转
d =deque('abc')
d.rotate(2)
print(d)
#执行结果: deque(['b', 'c', 'a'])
d.rotate(-2)
print(d)
#执行结果:deque(['a', 'b', 'c'])