python 双端队列
创建deque
# 创建空deque my_deque = deque() # 将队列变为deque my_deque = deque([1, 2, 3])
成员检测
# 成员检测:使用 in 和 not in 运算符来检查 deque 中是否包含某个元素, if 2 in my_deque: print("2 is in the deque")
两端添加元素
# append(item):在 deque 的右端添加一个元素。 my_deque.append(4) print(my_deque) # deque([1, 2, 3, 4]) # appendleft(item):在 deque 的左端添加一个元素。 my_deque.appendleft(0) print(my_deque) # 输出:deque([0, 1, 2, 3,4])
清空deque
# 清空deque my_deque.clear() print(my_deque) # 输出:deque([])
复制deque
my_deque = deque([1, 2, 3]) new_deque = my_deque.copy() print(new_deque) # 输出 deque([1, 2, 3])
元素计数
count = my_deque.count(2) print(count) # 输出:1
扩展deque
# extend(iterable):在 deque 的右端添加可迭代对象中的所有元素。 my_deque.extend([4, 5, 6]) print(my_deque) # 输出:deque([1, 2, 3, 4, 5, 6]) # extendleft(iterable):在 deque 的左端添加可迭代对象中的所有元素,注意顺序。 # 在 extendleft(iterable) 方法中,参数 iterable 中的元素会被逐个添加到 deque 的左端。由于 deque 是一种双端队列,元素添加到左端后会被放置在已有元素的前面。 my_deque = deque([3, 4, 5]) my_deque.extendleft([2, 1, 0]) print(my_deque) # 输出:deque([0, 1, 2, 3, 4, 5])
获取元素的索引
# index(item[, start[, end]]):返回 deque 中第一个匹配项的索引。 my_deque = deque([1, 2, 3, 2]) index = my_deque.index(2) print(index) # 输出:1
在指定位置插入元素
# insert(index, item):在指定索引位置插入一个元素。 my_deque.insert(1, 4) print(my_deque) # 输出:deque([1, 4, 2, 3, 2])
移除并返回元素
# pop():从 deque 的右端移除并返回一个元素。 item = my_deque.pop() print(item) # 输出:2 print(my_deque) # 输出:deque([1, 4, 2, 3]) # popleft():从 deque 的左端移除并返回一个元素。 item = my_deque.popleft() print(item) # 输出:1 print(my_deque) # 输出:deque([4, 2, 3])
移除指定元素
# remove(item):从 deque 中移除第一个匹配的元素。如果移除不存在的元素,则会报错。 my_deque.remove(2) print(my_deque) # 输出:deque([4, 3])
反转deque
# reverse():反转 deque 中的元素顺序。 my_deque.reverse() print(my_deque) # 输出:deque([3, 4])
循环移动元素
# rotate(n=1):循环移动 deque 中的元素,正数表示向右移动,负数表示向左移动。 my_deque = deque([1, 2, 3, 4, 5]) my_deque.rotate(2) print(my_deque) # 输出:deque([4, 5, 1, 2, 3]) my_deque = deque([1, 2, 3, 4, 5]) my_deque.rotate(-2) print(my_deque) # 输出:deque([3, 4, 5, 1, 2])
设置最大长度
# 可以通过在创建 deque 时指定 maxlen参数来设置最大长度。一旦 deque 达到最大长度,再添加元素时会从另一端删除元素。 my_deque = deque(maxlen=3) my_deque.append(1) my_deque.append(2) my_deque.append(3) print(my_deque) # 输出:deque([1, 2, 3], maxlen=3) my_deque.append(4) print(my_deque) # 输出:deque([2, 3, 4], maxlen=3)
猪猪侠要努力呀!