我在Python中使用出队。我知道,要从出队中删除某个项目,我可以通过其索引来完成。像这样:

from collections import deque
deq = deque([1, 2, 3, 4, 5, 6, 7, 8])
del deq[1]


现在,我想从出队的末尾删除多个项目,因此我使用以下命令:

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)


我希望新的deqdeq=[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()


弹出最后一个元素(并返回它)

10-05 22:52