2012-05-02 14 views
1

私はデュークでコロン演算子を使用することを望んでいましたが、リストと同じように動作していないようです。Dequesを持つコロン演算子(Pythonで)

私が何かしようとしていた

: 「例外TypeError:シーケンスインデックスが整数ではなく、 『スライス』でなければならない」

を行うための最善の方法は何これは私が受け取ったエラーです

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

をdequesで配列をスライスしますか?

答えて

3

反復処理は、両端キューの性質上、ブルートフォース方式(注釈:未検証)よりも高速です。

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

いいですが、 'maxint'の代わりに' None'が使えます。 :) – Dougal

+2

オペレータが新しい 'deque'を望む場合、' sys.maxint'の代わりに 'None'を –

+0

に、' list() 'の代わりに' deque() 'を指定することができます。 – Amber

2

dequeオブジェクトは、自分自身をスライスサポートしていませんが、あなたは新しいデックを行うことができます。

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

collections.dequeオブジェクトがスライスをサポートしていません。新しいものを作るのはもっと簡単だろう。

n_deque = deque(list(d)[3:]) 
関連する問題