web-dev-qa-db-ja.com

Pythonで要素nからリストを最後までスライスする方法は?

pythonリストをスライスする方法を理解するのに苦労しています。

>>> test = range(10)
>>> test
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> test[3:-1]
[3, 4, 5, 6, 7, 8]
>>> test[3:0]
[]
>>> test[3:1]
[]
>>> test
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

私の理解では、python sliceはlst [start:end]を意味し、startを含み、endを除外します。要素nから始まるリストの「残り」を見つけるにはどうすればよいですか?

すべてのあなたの助けに感謝します!

41
FurtiveFelon

値を指定しないことで、スライスの一端を開いたままにすることができます。

test[3:] = [3, 4, 5, 6, 7, 8, 9]
test[:3] = [0, 1, 2]
64
Angela

範囲のエンドポイントとして変数を使用している場合は、Noneを使用できます。

 start = 4
 end = None
 test[start:end]
61
recursive

単に終了を省略します。

test[n:]
8
Matthew

いくつかをスキップしたいときは、最後を省いても機能します:

range(10)[3::2] => [3, 5, 7, 9]
4
Doug Bradshaw

開始値の後にリストのスライスを返します。

list = ['a','b','c','d']
start_from = 'b' # value you want to start with
slice = list[list.index(start_from):] # returns slice from starting value to end
1
Mark Matthews

また、endに対して None キーワードを使用することもできます。 スライス時のパラメーター。また、リストの最後まで要素を返します(または、タプル、文字列などの任意のsequence

# for list
In [20]: list_ = list(range(10))    
In [21]: list_[3:None]
Out[21]: [3, 4, 5, 6, 7, 8, 9]

# for string
In [22]: string = 'mario'
In [23]: string[2:None]
Out[23]: 'rio'

# for Tuple
In [24]: Tuple_ = ('Rose', 'red', 'orange', 'pink', 23, [23, 'number'], 12.0)
In [25]: Tuple_[3:None]
Out[25]: ('pink', 23, [23, 'number'], 12.0)
0
kmario23