[解決済み] ジェネレータ式とリスト内包の比較
2022-03-22 22:44:15
質問
Pythonでジェネレータ式を使うべきときと、リスト内包を使うべきときとは?
# Generator expression
(x*2 for x in range(256))
# List comprehension
[x*2 for x in range(256)]
解決方法は?
ジョンの回答 は良い(何かを何度も反復したいときはリスト内包の方が良いということ)。 しかし、リストメソッドのどれかを使いたい場合はリストを使うべきだということも知っておく必要がある。 たとえば、次のようなコードはうまくいかない。
def gen():
return (something for something in get_some_stuff())
print gen()[:2] # generators don't support indexing or slicing
print [5,6] + gen() # generators can't be added to lists
基本的に、1回だけ反復するのであれば、ジェネレータ式を使う。 生成された結果を保存して使用したい場合は、リスト内包を使用したほうがよいでしょう。
もし、プログラムの動作が遅いと感じたら、そのときだけ、コードのチューニングに戻ることをお勧めします。
関連
-
Python jiabaライブラリの使用方法について説明
-
pyCaret効率化乗算器 オープンソース ローコード Python機械学習ツール
-
風力制御におけるKS原理を深く理解するためのpythonアルゴリズム
-
[解決済み】NameError: 名前 'self' が定義されていません。
-
[解決済み] 最小限の驚き」と「変更可能なデフォルトの引数
-
[解決済み] リストを均等な大きさの塊に分割するには?
-
[解決済み] Python 3で「1000000000000000 in range(1000000000000001)」はなぜ速いのですか?
-
[解決済み] 辞書のリストを辞書の値でソートするにはどうしたらいいですか?
-
[解決済み] リスト内包型辞書の作成
-
[解決済み】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 string splicing.join()とsplitting.split()の説明
-
PicgoのイメージベッドツールをPythonで実装する
-
pyCaret効率化乗算器 オープンソース ローコード Python機械学習ツール
-
PythonでECDSAを実装する方法 知っていますか?
-
[解決済み】ImportError: sklearn.cross_validation という名前のモジュールがない。
-
[解決済み】TypeError: re.findall()でバイトのようなオブジェクトに文字列パターンを使用することはできません。)
-
[解決済み】TypeError: 系列を <class 'float'> に変換することができません。
-
[解決済み】TypeErrorを取得しました。エントリを持つ子テーブルの後に親テーブルを追加しようとすると、 __init__() missing 1 required positional argument: 'on_delete'
-
[解決済み】IndexError: invalid index to scalar variableを修正する方法
-
[解決済み】SyntaxError: デフォルト以外の引数がデフォルトの引数に続く