Python 2.X には、一連の数値を生成するための 2 つの関数 range と xrange が用意されています。どちらも同様の目的を果たしますが、特にメモリ使用量と効率の点で異なる特徴を示します。
range
range 関数は、メモリを割り当てるリストを作成します。シーケンス全体を一度に保存します。これは、メモリに収まらない可能性のある大きなシーケンスの場合は非効率的になる可能性があります。たとえば、 range(1, 10000000) は 9999999 個の要素を含むリストを作成し、大量のメモリを消費する可能性があります。
xrange
対照的に、xrange 関数はシーケンスを生成します。遅延評価するオブジェクト。シーケンス全体を事前にメモリに保存しません。代わりに、必要に応じて各要素をその場で計算します。これにより、特に大きなシーケンスの場合、xrange のメモリ効率が向上します。
効率への影響
xrange の遅延評価により、特に大きなシーケンスの場合、range よりも高速になります。シーケンス全体にメモリを割り当てる必要がないため、発生するオーバーヘッドが少なくなります。これは、シーケンスが 1 回だけ反復されるループまたはリスト内包表記で特に顕著です。
その他の違い
メモリの使用量と効率以外にも、いくつかの違いがあります。 range と xrange の違い:
以上がPython 2.X の Range と xrange: 違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。