LoginSignup
1
0

More than 5 years have passed since last update.

dequeでlistのようにある範囲の値を取得したい時

Posted at

0. 筆者環境

Windows 10 64bit
Python 3.6.7 64bit

1. 問題点・実例

dequeを使用した際に、listのようにsliceで値を取得しようとしたらslice自体使えない模様。
末尾からx個の値を取得したい等、必要な時はあると思われるため、下記にまとめた。

2. 対処法

itertoolsのisliceを用いる方法

import collections
import itertools

# dequeに1-1000の値を格納
dq = collections.deque(range(1000))
# yにdqの900-1000個の値を格納
y = list(itertools.islice(dq, 900, 1000))

リスト内包表記を用いる方法

import collections
import itertools

# dequeに1-1000の値を格納
dq = collections.deque(range(1000))
# yにdqの900-1000個の値を格納
y = [dq[i] for i in range(900, 1000)]

どっちが早いかは場合によって変わるため、計測しながら使う。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0