如何将双端队列一分为二

How to split a deque in two

我正在写一些我经常弹出和附加的东西,我认为使用 deque 是合适的。但是,在我的代码中的某个地方,我需要将 deque 一分为二。

考虑 deque d

from collections import deque

d = deque(range(4))

我想这样分割deque

d[:2]

但是我得到一个错误

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-29-cb523bbbf363> in <module>()
      3 d = deque(range(4))
      4 
----> 5 d[:2]

TypeError: sequence index must be integer, not 'slice'

我可以

list(d)[:2]

[0, 1]

但是把它变回一个列表只是为了分割它似乎很荒谬。我错了吗?或者有别的办法吗?

有了itertools.islice,你可以做到

deque(islice(d, 2))