[解決済み] 無限イテレータを表す式はありますか?
2022-06-20 14:27:31
質問
無限イテレータを生成するための簡単な式はありますか?
これは純粋に理論的な質問です。ここで "実用的" の答えは必要ありません :)
例えば、生成式を使って有限のイテレータを作るのは簡単です。
my_gen = (0 for i in xrange(42))
しかし、無限のものを作るには、偽の関数で私の名前空間を "pollute"する必要があります。
def _my_gen():
while True:
yield 0
my_gen = _my_gen()
別ファイルで行うことや
import
-を後で使うことはカウントされません。
また、私は以下のことを知っています。
itertools.repeat
はまさにこれを行います。それがないワンライナーのソリューションがあるのかどうか気になるところです。
どのように解決するのですか?
for x in iter(int, 1): pass
-
2つの引数
iter
= ゼロ引数の callable + センチネルの値 -
int()
常に0
したがって
iter(int, 1)
は無限反復子です。この特定のテーマには、明らかに膨大な数のバリエーションがあります。
lambda
をミックスに加えると特にそうです)。特に注目すべきバリエーションは
iter(f, object())
であり、センチネル値として新しく作成されたオブジェクトを使用すると、最初の引数として使用される callable に関係なく、無限イテレータがほとんど保証されるからです。
関連
-
[解決済み】TypeError: 系列を <class 'float'> に変換することができません。
-
[解決済み] for'ループでインデックスにアクセスする?
-
[解決済み] __init__.py は何のためにあるのですか?
-
[解決済み] パラメータに**(ダブルスター/アスタリスク)、*(スター/アスタリスク)がありますが、これはどういう意味ですか?
-
[解決済み] AndroidでPythonを実行する方法はありますか?
-
[解決済み] Pythonのswitch文の代用品?
-
[解決済み] 基本的なイテレータを作るには?
-
[解決済み] C++コンテナにおけるイテレータの無効化ルール
-
[解決済み】forループを使った辞書の反復処理
-
[解決済み】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コードの可読性を向上させるツール「pycodestyle」の使い方を詳しく解説します
-
Python入門 openを使ったファイルの読み書きの方法
-
Pythonの画像ファイル処理用ライブラリ「Pillow」(グラフィックの詳細)
-
[解決済み】TypeErrorの修正方法。Unicodeオブジェクトは、ハッシュ化する前にエンコードする必要がある?
-
[解決済み】Python regex AttributeError: 'NoneType' オブジェクトに 'group' 属性がない。
-
[解決済み】ImportError: PILという名前のモジュールがない
-
[解決済み】TypeError: 系列を <class 'float'> に変換することができません。
-
[解決済み】Python Error: "ValueError: need more than 1 value to unpack" (バリューエラー:解凍に1つ以上の値が必要です
-
[解決済み】Python - "ValueError: not enough values to unpack (expected 2, got 1)" の修正方法 [閉店].
-
[解決済み】ValueError: xとyは同じサイズでなければならない