ホームページ  >  記事  >  バックエンド開発  >  Python は range よりも xrange を優先すべきでしょうか?

Python は range よりも xrange を優先すべきでしょうか?

silencement
silencementオリジナル
2019-05-25 14:43:182758ブラウズ

Python は range よりも xrange を優先すべきでしょうか?

range と xrange の比較

range

関数の使用法:
range( stop)
range(start,stop[,step])
関数の説明:
これは、シーケンスを含むリストを作成する一般的な関数です。 for ループで最もよく使用されます。パラメータは通常の整数でなければなりません。 step パラメータを省略した場合、デフォルトは 1 になります。 start パラメータを省略した場合、デフォルトは 0 になります。この関数の完全な形式は、整数のリスト [開始、開始ステップ、開始 2 * ステップ、…] を返します。 step が正の場合、最後の要素の start i * step が最大で stop より小さくなります。step が負の場合、最後の要素の start i * step が最小で stop より大きくなります。 step はゼロであってはなりません (そうでない場合は、ValueError が発生します)。

Python は range よりも xrange を優先すべきでしょうか?

xrange
##関数の使用法:

xrange(stop)

xrange(start,stop[,step])
関数の説明:
この関数は range() とよく似ていますが、リストの代わりに xrange オブジェクト タイプを返します。これは、対応するリストと同じ値を生成する遅延シーケンス タイプですが、実際にはそれらを同時に一緒に保存しません。 xrange() は range() よりもほとんど利点がありません (xrange() は依然として必要な値を作成する必要があるため)、メモリに制約のあるマシンで非常に大きな範囲を使用している場合、または範囲のすべての要素が一度も使用されていない場合 (例:ループは多くの場合ブレークによって終了します)。
xrange オブジェクト タイプの説明
xrange タイプは不変のシーケンスであり、通常はループに使用されます。 xrange 型の利点は、xrange オブジェクトが表す範囲のサイズに関係なく、常に同じ量のメモリを占有することです。しかし、一貫したパフォーマンス上の利点はありません。
xRange オブジェクトの動作はほとんどありません。インデックス付け、反復、および len() 関数のみをサポートします。

Python は range よりも xrange を優先すべきでしょうか?上記の例からわかるように、 range() メソッドと xrange() メソッドはまったく同じであり、基本的に使用されます。ループ中に、両方の出力結果は同じです。この 2 つの最大の違いは、 range() はリスト オブジェクトを直接生成し、xrange() はリスト オブジェクトの代わりに xrange オブジェクトを生成し、各呼び出しが値を返すことです。 。

以上がPython は range よりも xrange を優先すべきでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。