Deques的冒号运算符(用Python编写)

时间:2012-05-02 03:01:45

标签: python arrays deque slice colon

我希望在我的双端队列中使用冒号操作符,但它似乎与列表不同。

我正在尝试类似的事情:

myDeque = deque([0,1,2,3,4,5])
myDequeFunction(myDeque[3:])

这是我收到的错误: “TypeError:序列索引必须是整数,而不是'slice'”

使用deques进行数组切片的最佳方法是什么?

3 个答案:

答案 0 :(得分:3)

由于双端队列的性质,迭代可能比蛮力方法更快(注意:未经证实)。

>>> myDeque = collections.deque([0,1,2,3,4,5])
>>> list(itertools.islice(myDeque, 3, sys.maxint))
[3, 4, 5]

答案 1 :(得分:2)

deque个对象不支持自己切片,但你可以创建一个新的双端队列:

sliced_deque = deque(list(old_deque)[3:])

答案 2 :(得分:0)

collections.deque个对象不支持切片。制作一个新的更直接。

n_deque = deque(list(d)[3:])