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から始まるリストの「残り」を見つけるにはどうすればよいですか?
すべてのあなたの助けに感謝します!
値を指定しないことで、スライスの一端を開いたままにすることができます。
test[3:] = [3, 4, 5, 6, 7, 8, 9]
test[:3] = [0, 1, 2]
範囲のエンドポイントとして変数を使用している場合は、None
を使用できます。
start = 4
end = None
test[start:end]
単に終了を省略します。
test[n:]
いくつかをスキップしたいときは、最後を省いても機能します:
range(10)[3::2] => [3, 5, 7, 9]
開始値の後にリストのスライスを返します。
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
また、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)