2

dequeでコロン演算子を使用したいと思っていましたが、リストと同じようには機能しなかったようです。

私は次のようなことを試みていました:

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

これは私が受け取ったエラーです:「TypeError:シーケンスインデックスは「スライス」ではなく整数でなければなりません」

dequesを使用して配列スライシングを行うための最良の方法は何ですか?

4

3 に答える 3

3

dequeの性質上、反復は強引な方法(注:証明されていない)よりもおそらく高速です。

>>> 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 に答える