LoginSignup
1
0

More than 5 years have passed since last update.

Python のスライスの抜き出し末尾指定(None)

Last updated at Posted at 2019-03-21

こんにちは。
Python のリストのスライスで、第二引数が抜き出し末尾指定 (exclusive) ですが、何も指定しないとリスト自身の末尾(逆順の場合は先頭)を指定したことになります。代わりに None を指定しても同じことになります。

>>> [i for i in range(3)[::]]
>>> [i for i in range(3)[:None:]]
[0, 1, 2]
>>> [i for i in range(3)[::-1]]
>>> [i for i in range(3)[:None:-1]]
[2, 1, 0]

例えば、下記で -1 を使うとエラーとなるので、代わりに None を使う方法があります1

>>> [range(3)[:i:-1][-1] for i in [1, 0, None]]
[2, 1, 0]
>>> [range(3)[:i:-1][-1] for i in [1, 0, -1]]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "<stdin>", line 1, in <listcomp>
IndexError: range object index out of range

  1. None による代用は不自然にも見えるので、-1 の使用を許して欲しい気がします。 

1
0
2

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