python3イテレータとジェネレータ2024 年の最新の入門チュートリアル。このコースでは イテレータ,発電機, について学習できます。
反復は、Pythonの最も強力な機能の一つはコレクション要素にアクセスする方法です。 。
イテレータは、オブジェクトのトラバースは場所を覚えています。
すべての要素が完全に終了してアクセスされるまで、イテレータオブジェクトは、コレクションの最初の要素の先頭からアクセス可能です。 イテレータは、前方、後方ではない移動することができます。
ITER()、 次の():イテレータは、2つの基本的な方法があります 。
文字列、リスト、またはタプルのオブジェクトは、イテレータを作成するために使用することができます。
>>> list=[1,2,3,4] >>> it = iter(list) # 创建迭代器对象 >>> print (next(it)) # 输出迭代器的下一个元素 1 >>> print (next(it)) 2 >>>
Iteratorオブジェクトは、従来のトラバースステートメントのために使用することができます。
#!/usr/bin/python3 list=[1,2,3,4] it = iter(list) # 创建迭代器对象 for x in it: print (x, end=" ")
上記のプログラムは以下のように、出力結果は次のとおりです。
1 2 3 4
あなたはまた、次の()関数を使用することができます。
#!/usr/bin/python3 import sys # 引入 sys 模块 list=[1,2,3,4] it = iter(list) # 创建迭代器对象 while True: try: print (next(it)) except StopIteration: sys.exit()
上記のプログラムは以下のように、出力結果は次のとおりです。
1 2 3 4
Pythonでは、降伏関数を使用して、ジェネレータ(発電機)として知られています。
違いは、通常の関数と、発電機が戻りイテレータ機能のみBuilderがイテレータであることを理解するために、より単純な反復作業を、使用することができるということです。
発電機は、プロセスを実行している呼び出し、遭遇した降伏関数は、各時間を一時停止し、現在の稼動情報、歩留まりの戻り値のすべてを保存します。 現在の場所と次の実行から次の()メソッドを実行し続けます。
次の例では、歩留まりを実現フィボナッチ列を使用しています。
#!/usr/bin/python3 import sys def fibonacci(n): # 生成器函数 - 斐波那契 a, b, counter = 0, 1, 0 while True: if (counter > n): return yield a a, b = b, a + b counter += 1 f = fibonacci(10) # f 是一个迭代器,由生成器返回生成 while True: try: print (next(f), end=" ") except StopIteration: sys.exit()
上記のプログラムは以下のように、出力結果は次のとおりです。
0 1 1 2 3 5 8 13 21 34 55