2

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

我正在尝试类似的东西:

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

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

用双端队列进行数组切片的最佳方法是什么?

4

3 回答 3

3

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

>>> myDeque = collections.deque([0,1,2,3,4,5])
>>> list(itertools.islice(myDeque, 3, sys.maxint))
[3, 4, 5]
于 2012-05-02T03:07:48.250 回答
2

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

sliced_deque = deque(list(old_deque)[3:])
于 2012-05-02T03:04:55.263 回答
0

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

n_deque = deque(list(d)[3:])
于 2012-05-02T03:05:41.280 回答