1. ホーム
  2. python

[解決済み] forまたはwhileループでn回何かを行う

2022-02-08 13:39:15

質問

Pythonでは、ある動作を2回以上繰り返すには2つの方法があります。そのうちの1つは while ループと、もう1つの for のループになります。それでは、2つの簡単なコードを見てみましょう。

for i in range(n):
    do_sth()

そしてもうひとつは

i = 0
while i < n:
    do_sth()
    i += 1

問題は、どちらが良いかということです。もちろん、最初のものはドキュメントの例やインターネット上で見つけられる様々なコードの断片で非常によく見られるもので、よりエレガントで短いものですが、その一方で、ループさせるためだけに全く役に立たない整数のリストを作成しています。特に大量の反復処理に関しては、メモリの無駄遣いではないでしょうか?

では、どちらの方法が良いと思いますか?

解決方法は?

<ブロッククオート

が、その一方で、ループさせるためだけに全く無駄な整数のリストを作ってしまいます。特に大きな数の反復処理に関しては、メモリの無駄遣いではないでしょうか?

それは xrange(n) はそのためのものです。これは数値のリストを作成することを避け、代わりにイテレータオブジェクトを提供するだけです。

Python3では xrange() にリネームされました。 range() - リストが必要な場合は、特に list(range(n)) .