リストをループするために列挙を使用するコードを書きました。Pythonは特定のインデックスからループを継続します
for index, item in enumerate(list[start_idx:end_idx])
print('index [%d] item [%s]'%(str(index), item))
リストの項目は単なる文字列です。時にはリスト全体を列挙したくない場合もありますが、リストをスライスして別のものを行うこともあります。
私が問題を抱えている部分は、pythonの列挙関数です。
ドキュメントは、あなたが行うことができると言う。
for index, item in enumerate(list, start_index):
print(str(index))
上記のコードは、私が期待したもの行いません。私は列挙は開始位置で開始し、最後に停止するが、それはしない。
私は小さなプログラムを書いていますが、それは確かにうわーです。
>>> for i, x in enumerate(range(0,20),start=4):
... print(str(i)+'\t'+str(x))
...
4 0
5 1
6 2
7 3
8 4
9 5
10 6
11 7
12 8
13 9
14 10
15 11
16 12
17 13
18 14
19 15
20 16
21 17
22 18
23 19
インデックス4から始まり、最後までループすることが期待されます。したがって、4-19の範囲が得られますが、インデックスを開始するだけですが、0-19まで繰り返します。
質問Pythonの特定のインデックスから繰り返しループを開始する方法はありますか?
私の予想結果は
>>> for i, x in enumerate(range(0,20),start=4):
... print(str(i)+'\t'+str(x))
...
4 0 # skip
5 1 # until
6 2 # this
7 3 # item
8 4
9 5
10 6
11 7
12 8
13 9
14 10
15 11
16 12
17 13
18 14
19 15
20 16
21 17
22 18
23 19
代わりの提供開始位置のインデックスを開始するだろう。
あなたが行うことができます
'start'引数は化粧品、私が言う、です。通常、デフォルトではなく1から数え始めたいときに便利です –
ところで、私はあなたがここで何をしているのかについて少し匂いが感じられます。 'enumerate'は必要ありません。なぜなら、リストのメンバーを変更して、それらを元に戻すことを意味するからです。静的にリストを処理する場合、インデックスをまったく管理する必要はなく、単純にスライスを繰り返し処理できます。 – kojiro