2017-01-18 2 views
1

J'écris quelque chose où je saute et j'ajoute souvent et je pensais qu'il serait approprié d'utiliser deque. Cependant, quelque part dans mon code, je dois diviser le deque en deux.Comment diviser une deque en deux

Tenir compte de la dequed

from collections import deque 

d = deque(range(4)) 

Je voudrais partager le deque de cette façon

d[:2] 

Mais je reçois une erreur

--------------------------------------------------------------------------- 
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' 

que je pouvais faire

list(d)[:2] 

[0, 1] 

Mais cela semble absurde de le transformer de nouveau dans une liste juste pour trancher. Ai-je tort? Ou y a-t-il un autre moyen?

+0

@heltonbiker Merci pour trouver cela. C'est un doublon exact – piRSquared

Répondre

2

Avec itertools.islice, vous pouvez faire

deque(islice(d, 2))