[解決済み】range()よりもxrange()を常に優先すべきなのか?)
2022-03-24 02:30:02
質問
なぜ、またはなぜそうしないのですか?
解決方法は?
パフォーマンスのため、特に大きな範囲に対して反復処理を行う場合。
xrange()
は通常、より良いものです。 しかし、いくつかのケースでは
range()
:
-
python3では。
range()
が行うのはxrange()
を使用しxrange()
は存在しない。 Python 2 と Python 3 の両方で動作するコードを書きたい場合、Python 2 と Python 3 の両方で動作するコードを書きたい場合、Python 2 と Python 3 の両方で動作するコードを書きたい場合はxrange()
. -
range()
は、同じシーケンスを何度も繰り返す場合など、実際に速くなることがあります。xrange()
は毎回整数オブジェクトを再構築しなければなりませんがrange()
は実整数オブジェクトを持つことになります。 (ただし、メモリの面では常にパフォーマンスが悪くなります)。 -
xrange()
は、本当のリストが必要なすべてのケースで使えるわけではありません。 例えば、スライスやリストメソッドをサポートしていません。
[編集] このサイトでは
range()
は、2to3ツールによってアップグレードされます。 念のため、以下は、2to3ツールのサンプル使用例でツールを実行したときの出力です。
range()
と
xrange()
RefactoringTool: Skipping implicit fixer: buffer
RefactoringTool: Skipping implicit fixer: idioms
RefactoringTool: Skipping implicit fixer: ws_comma
--- range_test.py (original)
+++ range_test.py (refactored)
@@ -1,7 +1,7 @@
for x in range(20):
- a=range(20)
+ a=list(range(20))
b=list(range(20))
c=[x for x in range(20)]
d=(x for x in range(20))
- e=xrange(20)
+ e=range(20)
このように、forループや内包の中で使われたり、すでにlist()でラップされている場合、範囲は変更されないままです。
関連
-
Python機械学習Githubが8.9Kstarsに達したモデルインタープリタLIME
-
[解決済み] [Solved] sklearn error ValueError: 入力に NaN、infinity または dtype('float64') に対して大きすぎる値が含まれている。
-
[解決済み] 辞書を値で並べ替えるにはどうしたらいいですか?
-
[解決済み] PandasでDataFrameの行を反復処理する方法
-
[解決済み] 割り当て後にリストが予期せず変更されました。その理由と防止策を教えてください。
-
[解決済み] Python 3で「1000000000000000 in range(1000000000000001)」はなぜ速いのですか?
-
[解決済み] Python 2.Xのrange関数とxrange関数の違いは何ですか?
-
[解決済み】ネストされたディレクトリを安全に作成するには?
-
[解決済み】Pythonに三項条件演算子はありますか?
-
[解決済み】2つの辞書を1つの式でマージする(辞書の和をとる)には?)
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
PythonによるLeNetネットワークモデルの学習と予測
-
Python interpreted model libraryによる機械学習モデル出力の可視化 Shap
-
[解決済み】お使いのCPUは、このTensorFlowバイナリが使用するようにコンパイルされていない命令をサポートしています。AVX AVX2
-
[解決済み】ilocが「IndexError: single positional indexer is out-of-bounds」を出す。
-
[解決済み】pygame.error: ビデオシステムが初期化されていない
-
[解決済み】OSError: [WinError 193] %1 は有効な Win32 アプリケーションではありません。
-
[解決済み】TypeError: 系列を <class 'float'> に変換することができません。
-
[解決済み】Flask ImportError: Flask という名前のモジュールがない
-
[解決済み】Python - "ValueError: not enough values to unpack (expected 2, got 1)" の修正方法 [閉店].
-
[解決済み] Python 2.Xのrange関数とxrange関数の違いは何ですか?