my_list = range(1,11)
print my_list[10:0:-1]
このコードは[10、9、8、7、6、5、4、3、2]を出力しますが、これは意味がありません。なぜこれを行うのですか?
my_list = range(1,11)
print my_list[10:0:-1]
このコードは[10、9、8、7、6、5、4、3、2]を出力しますが、これは意味がありません。なぜこれを行うのですか?
スライスの2番目の要素は排他的であるためです。インデックスは、0までではなく、10から1まで実行されます。
逆my_list
にするには、開始と終了を省略します。
print my_list[::-1]
これは、表記法が機能する方法です。@GregHewgillが非常にうまく言ったように:
覚えておくべき重要な点は、:end値は、選択したスライスにない最初の値を表すということです。したがって、endとstartの違いは、選択された要素の数です(stepが1の場合、デフォルト)。
これにより、すべての要素が逆の順序で選択され、インデックス10の要素から始まり、インデックス0の要素まで続きます(ただし、その要素は含まれません)。
for
もう1つの方法は、表記をインデックスの従来のループの省略形と考えることです。この場合:
for(int i=10; i>0; i-=1)