[解決済み] itertoolsのchainとchain.from_iterableの違いは何ですか?
2023-07-26 15:47:14
質問
インターネット上で、両者の違いや、どちらかを選択する理由がわかるような有効な例が見つかりません。
どのように解決するのですか?
前者は0個以上の引数を取り、それぞれが反復記号となります。後者は1個の引数を取り、反復記号を生成することが期待されます。
from itertools import chain
chain(list1, list2, list3)
iterables = [list1, list2, list3]
chain.from_iterable(iterables)
しかし
iterables
はイテラブルを生成する任意のイテレータにすることができます。
def gen_iterables():
for i in range(10):
yield range(i)
itertools.chain.from_iterable(gen_iterables())
2番目の形式を使うのは通常便利な場合ですが、これは入力の反復記号を遅延してループするので 無限 数の有限反復子を連鎖させることができる唯一の方法です。
def gen_iterables():
while True:
for i in range(5, 10):
yield range(i)
chain.from_iterable(gen_iterables())
上記の例では、決して止まることのない循環的な数字のパターンを生成する反復処理可能なものが得られますが、単一の
range()
の呼び出しが必要とする以上のメモリを消費することはありません。
関連
-
[解決済み] 関数デコレータを作成し、それらを連鎖させるには?
-
[解決済み] staticmethodとclassmethodの違いについて
-
[解決済み] PandasでDataFrameの行を反復処理する方法
-
[解決済み] Pythonのリストメソッドであるappendとextendの違いは何ですか?
-
[解決済み] 最小限の驚き」と「変更可能なデフォルトの引数
-
[解決済み] Pythonの旧スタイルのクラスと新スタイルのクラスの違いは何ですか?
-
[解決済み] pipとcondaの違いは何ですか?
-
[解決済み】__str__と__repr__の違いは何ですか?
-
[解決済み] dict を txt ファイルに書き、それを読み取る?
-
[解決済み] Pythonの文字列の前にあるbという接頭辞は何を意味するのですか?
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Flaskで1時間ごとに関数を実行するようにスケジュールするには?
-
[解決済み] Djangoで2つの日付の間を選択する
-
[解決済み] Pandasの'Freq'タグにはどのような値が有効ですか?
-
[解決済み] Django Rest Framework ファイルアップロード
-
[解決済み] python-requests モジュールからのすべてのリクエストをログに記録します。
-
[解決済み] スペースがないテキストを単語のリストに分割する方法
-
[解決済み] Ctrl-CでPythonスクリプトを終了できない
-
[解決済み] Flask でグローバル変数はスレッドセーフか?リクエスト間でデータを共有するには?
-
[解決済み] Python 言語を決定するには?
-
[解決済み] virtualenvsはどこに作成するのですか?