从双端队列的后面删除项目
deleting items from the back of a deque
我在 Python 中使用出列。我知道要从出队中删除某个项目,我可以通过它的索引来完成。像这样:
from collections import deque
deq = deque([1, 2, 3, 4, 5, 6, 7, 8])
del deq[1]
现在我想从dequeue的尾部删除多个item,所以我用这个:
from collections import deque
deq = deque([1, 2, 3, 4, 5, 6, 7, 8])
for i in range(1, 5):
del deq[-i]
print(deq)
我希望新的 deq
是 deq=[1, 2, 3, 4]
但输出是 deq = [1, 3, 5, 7]
。为什么会这样?
最后一个元素的索引为 -1
。当你删除最后一个元素时,下一个要删除的元素仍然有索引 -1
from collections import deque
deq = deque([1, 2, 3, 4, 5, 6, 7, 8])
for i in range(1, 5):
del deq[-1]
也许更好的选择是
deq.pop()
弹出最后一个元素(和 returns 它)
我在 Python 中使用出列。我知道要从出队中删除某个项目,我可以通过它的索引来完成。像这样:
from collections import deque
deq = deque([1, 2, 3, 4, 5, 6, 7, 8])
del deq[1]
现在我想从dequeue的尾部删除多个item,所以我用这个:
from collections import deque
deq = deque([1, 2, 3, 4, 5, 6, 7, 8])
for i in range(1, 5):
del deq[-i]
print(deq)
我希望新的 deq
是 deq=[1, 2, 3, 4]
但输出是 deq = [1, 3, 5, 7]
。为什么会这样?
最后一个元素的索引为 -1
。当你删除最后一个元素时,下一个要删除的元素仍然有索引 -1
from collections import deque
deq = deque([1, 2, 3, 4, 5, 6, 7, 8])
for i in range(1, 5):
del deq[-1]
也许更好的选择是
deq.pop()
弹出最后一个元素(和 returns 它)