2009-03-07 6 views
26

私は次のようにそれが示され、いくつかのトラブル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のスライスがLST [スタート:終了]を意味し、開始を含め、エンド除きます。だから、要素nから始まるリストの「残りの部分」を見つける方法は?

ありがとうございました。

答えて

45

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

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

単純に最後を省略します。

test[n:] 
34

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

あなたには、いくつかをスキップしたい場合、エンドがまだ動作しておく
start = 4 
end = None 
test[start:end] 
2

range(10)[3::2] => [3, 5, 7, 9] 
1

戻るリストのスライスを開始する値の後に:

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 
関連する問題