Pythonプログラミング言語は、イノベーションのあらゆる側面を拡張しました。 、 、 、など。この偉業の多くの理由の1つは、Pythonイテレータのような概念です。これらの概念は、プログラミング言語としてのPythonの勝利の構成要素です。この記事では、Pythonイテレーターを理解するために、次の概念について説明します。
イテレータとイテレータ
Iterableオブジェクトとして使用できるPythonのオブジェクトは、Iterableと呼ばれます。これは基本的に、オブジェクト内のシーケンスを繰り返すことができることを意味します。のようなPythonコレクションのほとんど リスト 、 、 タプル 、 セット 、さらには 範囲 Iterableとして扱うことができます。
Pythonイテレータとは何ですか?
Python I terator は、カウント可能な数の値を含むコンテナです。コンテナ内の値は、イテレータ、特にリストを使用してトラバースできます。
トラバーサルとは別に、イテレータはコンテナ内のデータ要素へのアクセスも提供しますが、それ自体は実行しません反復つまり、その概念または用語のささいな使用で取られたいくつかの重要な自由がないわけではありません。イテレータは、データベースカーソル行動の中で。これは、のイテレータの簡単な例です。 。
my_obj = {'Edureka'、 'Python'、 'iterator'} iter_obj = iter(my_obj)print(next(iter_obj))
出力: Edureka
イテレータは、「forinloop」で使用できる任意のタイプのPythonです。イテレータとして使用されるオブジェクトは、次のメソッドを実装する必要があります。
1. __iter __()
イテレータの初期化時に呼び出されます。nextまたは__next__メソッドを持つオブジェクトを返す必要があります。
2. __next __()
Iteratorのnextメソッドは、Iterableの次の値を返します。
イテレータが「forin」ループで使用される場合、next()は暗黙的にによって呼び出されます。 Iteratorオブジェクト上。このメソッドは、StopIterationを使用して、反復の終了を通知する必要があります。これら2つの方法を合わせて、イテレータプロトコルと呼ばれます。例を挙げて、forループがPythonでイテレーターとしてどのように機能するかを理解してみましょう。
オブジェクト内のiの場合:print(i)
forループがイテレータとしてどのように機能するかを理解しましょう。
#そのイテレータからイテレータオブジェクトを作成しますiter_obj = iter(iterable)#Trueの間に無限ループ:try:#次のアイテムを取得element = next(iter_obj)#StopIteration以外の要素で何かを行う:#StopIterationが発生した場合、ループから抜けるブレーク
わかったので、どのように forループ イテレータとして機能します。 Pythonでカスタムイテレータを実装する方法を理解しましょう。
カスタムイテレータ
次に、Pythonでカスタムイテレータを実装する方法を見てみましょう。これを理解するために、例を使用します。この例では、__ iter __()メソッドと__next __()メソッドを実装します。
class MyNumbers:def __iter __(self):self.a = 1 return self def __next __(self):x = self.a self.a + = 1 return x myclass = MyNumbers()myiter = iter(myclass)print(next( myiter))print(next(myiter))print(next(myiter))
出力: 1
2
3
カスタムイテレータを実装する方法がわかったので、Pythonで無限イテレータを見てみましょう。
無限イテレータ
Iteratorオブジェクト内のアイテムを使い果たす必要があることは必ずしも必須ではありません。無限のイテレータが存在する可能性があります(これは決して終了しません)。これは、無限イテレータを示すための基本的な例です。
ビルトイン iter()2つの引数を使用して呼び出すことができます。最初の引数は呼び出すことができるオブジェクト(関数)である必要があり、2番目の引数は番兵です。イテレータは、戻り値がセンチネルと等しくなるまでこの関数を呼び出します。
これを理解するために例を見てみましょう
class MyNumbers:def __iter __(self):self.a = 1 return self def __next __(self):x = self.a self.a + = 1 return x myclass = MyNumbers()myiter = iter(myclass)print(next( myiter))print(next(myiter))print(next(myiter))print(next(myiter))print(next(myiter))
出力: 1
2
3
4
5
上記の例では、printステートメントを追加し続ける限り、実行は続行されます。無限イテレータを停止するには、stopIterationステートメントを使用する必要があります。
sort()c ++
StopIteration
反復が永久に続くのを防ぐために、StopIterationステートメントを使用します。いくつかの例でこれを理解しましょう。
class MyNumbers:def __iter __(self):self.a = 1 return self def __next __(self):if self.a&ampampamplt = 5:x = self.a self.a + = 1 return x else:raise StopIteration myclass = MyNumbers ()myiter = iter(myclass)for x in myiter:print(x)
出力: 1
2
3
4
5
今すぐ 条件がfalseの場合、実行はelseブロックに移動し、反復が停止します。それでは、Pythonのイテレータの他の例をいくつか見てみましょう。
Pythonイテレータの例
Pythonのイテレータの例をさらにいくつか示します。
my_obj = ['Edureka'、 'python'、 'iterator'] iter_obj = iter(my_obj)print(next(iter_obj))
出力: Edureka
この例では、タプルを反復可能なオブジェクトとして使用します。
my_obj =( 'Edureka'、 'python'、 'iterator')iter_obj = iter(my_obj)print(next(iter_obj))
出力: Edureka
文字列をPythonの反復可能なオブジェクトとして使用することもできます。
my_obj = 'Edureka' iter_obj = iter(my_obj)print(next(iter_obj))
出力: IS
これでこの記事の終わりになり、Pythonイテレーターの使用方法を例とともに学びました。このチュートリアルで共有されているすべてのことを明確に理解していただければ幸いです。
「Pythonイテレータ」に関するこの記事が関連していると感じた場合は、 25万人以上の満足した学習者のネットワークを持つ信頼できるオンライン学習会社が世界中に広がっています。
私たちはあなたの旅のすべてのステップであなたを助け、なりたい学生や専門家のために設計されたカリキュラムを考え出すためにここにいます 。このコースは、Pythonプログラミングをすぐに開始できるように設計されており、Pythonのコア概念と高度な概念の両方、およびさまざまな お気に入り
ご不明な点がございましたら、「Pythonイテレータ」のコメントセクションでお気軽に質問してください。私たちのチームは喜んでお答えします。