Как разделить деку на две части

Я пишу что-то, где я часто всплываю и добавляю сообщения и думал, что будет целесообразно использовать deque, Однако где-то в моем коде мне нужно разделить deque в двоем.

Рассмотрим dequed

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]

Но это кажется абсурдным, чтобы превратить его в список, просто чтобы нарезать его. Я ошибся? Или есть другой способ?

1 ответ

Решение

С itertools.islice, ты можешь сделать

deque(islice(d, 2))
Другие вопросы по тегам