Pythonで逆方向にループするにはどうすればいいですか? [重複] 質問する

Pythonで逆方向にループするにはどうすればいいですか? [重複] 質問する

私が言っているのは次のようなことです:

for(i=n; i>=1; --i) {
   //do something with i
}

Python でこれを行う方法はいくつか考えられます ( と のリストを作成しrange(1,n+1)、それを逆にしたり、whileと を使用したり--i、...) が、もっとエレガントな方法があるのではないかと考えました。あるのでしょうか?

編集: range はリストを返しますが、xrange は反復子を返すので、range() ではなく xrange() を使用するように勧める人もいます。しかし、Python 3 (たまたま使用しています) では range() は反復子を返し、xrange は存在しません。

ベストアンサー1

range()そして、xrange()ステップを指定する 3 番目のパラメータを取ります。つまり、次の操作を実行できます。

range(10, 0, -1)

これにより

[10, 9, 8, 7, 6, 5, 4, 3, 2, 1] 

しかし、反復処理の場合は、xrange代わりに次のものを使用する必要があります。

xrange(10, 0, -1)

rangePython 3 ユーザーへの注意: Python 3 には別個の 関数と関数はなく、 Python 2 の の設計に従うxrange関数だけがあります。rangexrange

おすすめ記事