Pythonイテレータとジェネレータの違い
Iterator はより抽象的な概念です。クラスに next メソッドと iter メソッドがある場合、オブジェクトはそれ自体を返します。文字列、リスト、辞書、タプルなどのコンテナ オブジェクトの場合は、For を使用します。ループトラバーサルは非常に便利です。
バックグラウンドの for ステートメントは、コンテナ オブジェクトの iter() 関数を呼び出します。iter() は Python の組み込み関数です。 iter() は、コンテナ内の要素に 1 つずつアクセスする next() メソッドを定義するイテレータ オブジェクトを返します。next() は Python の組み込み関数でもあります。後続の要素がない場合、next() は StopIteration 例外をスローします。 (推奨される学習: Python ビデオ チュートリアル )
# 随便定义一个list listArray=[1,2,3] # 使用iter()函数 iterName=iter(listArray) print(iterName)
Generator (ジェネレーター) は、イテレーターを作成するためのシンプルで強力なツールです。これらは、データを返す必要がある場合に yield ステートメントを使用することを除いて、通常の関数と同じように作成されます。 next() が呼び出されるたびに、ジェネレーターは中断した位置を返します (ステートメントが最後に実行された位置とすべてのデータ値を記憶しています)
# 菲波那切数列 def Fib(max): n, a, b = 0, 0, 1 while n < max: yield b a, b = b, a + b n = n + 1 return '亲!没有数据了...' # 调用方法,生成出10个数来 f=Fib(10) # 使用一个循环捕获最后return 返回的值,保存在异常StopIteration的value中 while True: try: x=next(f) print("f:",x) except StopIteration as e: print("生成器最后的返回值是:",e.value) break
違い:
ジェネレーターはイテレーターが実行できるすべてのことを実行でき、iter() メソッドと next() メソッドが自動的に作成されるため、ジェネレーターは特に簡潔で、リストの代わりにジェネレーター式を使用するため効率的でもあります。同時に記憶も。プログラム状態を作成および保存するための自動メソッドに加えて、ジェネレーターが終了すると StopIteration 例外が自動的にスローされます。
Python 関連の技術記事の詳細については、Python チュートリアル 列にアクセスして学習してください。
以上がPythonイテレータとジェネレータの違いの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











多くのウェブサイト開発者は、ランプアーキテクチャの下でnode.jsまたはPythonサービスを統合する問題に直面しています:既存のランプ(Linux Apache MySQL PHP)アーキテクチャWebサイトのニーズ...

LinuxターミナルでPythonバージョンを表示する際の許可の問題の解決策PythonターミナルでPythonバージョンを表示しようとするとき、Pythonを入力してください...

Scapy Crawlerを使用する場合、パイプラインの永続的なストレージファイルを書くことができない理由は?ディスカッションデータクローラーにScapy Crawlerを使用することを学ぶとき、あなたはしばしば...

Python:Hourglassグラフィック図面と入力検証この記事では、Python NoviceがHourglass Graphic Drawingプログラムで遭遇する可変定義の問題を解決します。コード...

Python Process Poolは、クライアントが立ち往生する原因となる同時TCP要求を処理します。ネットワークプログラミングにPythonを使用する場合、同時のTCP要求を効率的に処理することが重要です。 ...

python functools.partialオブジェクトのpython functools.partialを使用してPythonを使用する視聴方法を深く探索します。

Pythonクロスプラットフォームデスクトップアプリケーション開発ライブラリの選択多くのPython開発者は、WindowsシステムとLinuxシステムの両方で実行できるデスクトップアプリケーションを開発したいと考えています...

多くの開発者はPypi(PythonPackageIndex)に依存しています...
