【发布时间】:2018-11-04 07:09:38
【问题描述】:
有没有办法通过索引删除双端队列中的项目?
dq = deque(['a','b','c'])
dq.removeByIndex(1)
#output deque(['b', 'c'])
我只在文档中看到按值删除。另外,我知道我可以将它弹出i 次然后放回去,但它看起来并不漂亮。
【问题讨论】:
-
你可以使用
del your_deque[index]。
有没有办法通过索引删除双端队列中的项目?
dq = deque(['a','b','c'])
dq.removeByIndex(1)
#output deque(['b', 'c'])
我只在文档中看到按值删除。另外,我知道我可以将它弹出i 次然后放回去,但它看起来并不漂亮。
【问题讨论】:
del your_deque[index]。
你可以试试这个:
from collections import deque
deq = deque([1, 2, 3, 4])
del deq[1]
print(deq)
输出:
deque([1, 3, 4])
【讨论】:
deques 被记录为 mutable sequences,并且 all 可变序列支持此行为(通过 __delitem__)。 deques 也被明确记录以支持下标操作(其中下标的del 只是又一个用例)。同样的事情也适用于可变映射(例如 dict 和 dict 类似的东西)。
O(n) 或 O(1)