今すぐ学ぶ:https : //edu.csdn.net/course/play/26676/399743?utm_source=blogtoedu
1.イテレーター
クラスの特別なメソッド定義:前後にアンダースコアがあります
オブジェクトが反復可能かどうかを判別します:hasattr(xxx、 '__ iter__')
イテレータの最も重要な2つのメソッド:__iter__(反復可能かどうかを判別する)、__ next__(要素を順番に取得する)
イテレータはメモリを適切に最適化でき、使用した分だけ呼び出すことができるため、一度にメモリに転送する必要はありません。
イテレータライブラリitertoolsを使用する
2.ジェネレーター
ジェネレーター関数の戻り値は、yieldを使用して結果を返します(通常の関数の戻り値は、return to returnを使用します)。イールドリターンは、リターンの場所で一時停止され、次の呼び出しを待って、一時停止の場所から実行を継続します。リターン後のステートメントは実行されません。
ジェネレータは反復可能であり、反復子オブジェクトでもあります。
ジェネレーターの別の解析方法は、リスト内包のそれと似ており、リストの[]を()に置き換えます