我在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)
我希望新的deq
为deq=[1, 2, 3, 4]
,但输出为deq = [1, 3, 5, 7]
。为什么会这样?
答案 0 :(得分:3)
最后一个元素的索引为-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()
弹出最后一个元素(并返回它)