ホームページ > バックエンド開発 > Python チュートリアル > Python 2.X の Range と xrange: 違いは何ですか?

Python 2.X の Range と xrange: 違いは何ですか?

Mary-Kate Olsen
リリース: 2024-12-05 08:41:10
オリジナル
680 人が閲覧しました

Range vs. xrange in Python 2.X: What's the Difference?

Python 2.X の range 関数と xrange 関数の違いを理解する

Python 2.X には、一連の数値を生成するための 2 つの関数 range と xrange が用意されています。どちらも同様の目的を果たしますが、特にメモリ使用量と効率の点で異なる特徴を示します。

range

range 関数は、メモリを割り当てるリストを作成します。シーケンス全体を一度に保存します。これは、メモリに収まらない可能性のある大きなシーケンスの場合は非効率的になる可能性があります。たとえば、 range(1, 10000000) は 9999999 個の要素を含むリストを作成し、大量のメモリを消費する可能性があります。

xrange

対照的に、xrange 関数はシーケンスを生成します。遅延評価するオブジェクト。シーケンス全体を事前にメモリに保存しません。代わりに、必要に応じて各要素をその場で計算します。これにより、特に大きなシーケンスの場合、xrange のメモリ効率が向上します。

効率への影響

xrange の遅延評価により、特に大きなシーケンスの場合、range よりも高速になります。シーケンス全体にメモリを割り当てる必要がないため、発生するオーバーヘッドが少なくなります。これは、シーケンスが 1 回だけ反復されるループまたはリスト内包表記で特に顕著です。

その他の違い

メモリの使用量と効率以外にも、いくつかの違いがあります。 range と xrange の違い:

  • Python 2.X では、xrange は負の値を処理できません
  • Python 3 では、range が xrange に置き換わりました。 xrange を呼び出すと、NameError 例外が発生します。 Python 2.X の xrange のように動作するシーケンス オブジェクトを作成するには、stop 引数を None に設定して range を使用します。

以上がPython 2.X の Range と xrange: 違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート