この引数の値が小さいほど、翌日も同じ天気が続く可能性が高いことを意味します。同じ状態を維持することを意味します。日以上連続すると、コメントが掲載されるようにしています。関数ではよく使われるプログラミング機能の多くを使用していますが、それと同時にジェネレーターに伴う興味深い側面も明らかにしています。生成されるアイテムの数は固定されないことです。日数の分だけアイテムが生成されることもあれば、連続する晴れの日または雨の日に関するコメントにより、日数を上回る数のアイテムが生成されることもあります。アイテムは、異なる条件分岐の結果として生成されます。このリストを実行すると、以下のような出力が表示されるはずです。回は同じ天気が続くことから、以下のような出力になることもあります。thirsty!時間をかけて自分でいろいろと試してみてください。引数で異なる値を渡してから、ジェネレーター関数コード自体を微調整することをお勧めします。ジェネレーターがどのように機能するのかを確実に理解するには、実験してみるのが最良の方法です。少々趣向を凝らしたこの例によって、ジェネレーターの力に関する皆さんの想像力が刺激されたことを願います。確かにジェネレーターを使用しなくても上記のコードを作成することはできますが、ジェネレーターを使用した手法はより表現力豊かで、通常はより効率的です。それだけではありません。ジェネレーターを他の興味深い方法で再利用できるという利点もあります。つのイテレーターを繰り返し処理して何からの方法で操作し、変更されたイテレーターを生成することです。イテレーターを取り、指定された代替単語のセットに応じて検出された値を順に代入するジェネレーターを作成しましょう。item以下のセッションで、このジェネレーターを使用する例を確認できます。galaxyこのジェネレーターについても、これがどのように機能するかを明確に理解するまで、異なるループ操作を使用していろいろと試してください。ジェネレーター式と呼ばれる便利な構文が用意されています。ジェネレーター式を使用して上記のセッションを実装すると、以下のようになります。式を括弧で囲むとジェネレーター式になります。ジェネレーター・オブジェクトです。機能を使用することになる場合もあります。メソッドを利用してキーを検索し、キーが見つからなかった場合に返すデフォルト値を指定するようにしています。そのまま返すという方法です。リスト内包表記の復習よくご存知だと思いますが、リスト内包表記では同様の構文で、大括弧を使用します。リスト内包表記の結果はリストになります。19]ジェネレーター式の構文も似ていますが、ジェネレーター式が返すのはジェネレーター・オブジェクトです。つの例にある実質的な大きな違いとして、最初の例で作成されるリストは、作成された瞬間からそこに居座り、リストに値を格納するために必要なすべてのメモリーを消費します。ジェネレーター式はそれほど多くのストレージを使用しません。ジェネレーター関数の本体と同じように、繰り返し処理されるたびに中断され、処理が完了すると再開されます。事実上、ジェネレーター式を使用すれば、あらかじめデータを用意しておくのではなく、オンデマンドでデータを取得できます。ガロンだとしても、それだけの量の牛乳を貯蔵するための設備を地下室に作ることはしたくありません。ガロンずつ購入するほうが賢明です。常にリストを作成するのではなくジェネレーターを使用するということは、自宅に貯蔵施設を作るのでなく食料品店を利用することと似ています。辞書式もありますが、これについてはこのチュートリアルの範囲外です。ジェネレーター式は簡単にリストに変換できます。場合によってはリストに変換するという方法でジェネレーターをいっせいに使用することもありますが、注意しなければ、メモリーを大量に消費するリストを作成してしまう恐れがあります。なると、ジェネレーターを使用する目的が台無しになります。19]このチュートリアル・シリーズでは折に触れて、ジェネレーターからリストを作成する方法をデモンストレーションします。フィルタリングとチェーニングジェネレーター式内で単純な条件を使用するだけで、入力イテレーターからアイテムをフィルタリングすることができます。すべての数値を生成します。