この記事では、主に Python イテレータの定義と簡単な使用法を紹介し、例の形でイテレータの概念、原理、作成と使用法を分析します。必要な友人はそれを参照できます
この記事の例では、定義とイテレータについて説明します。 Python イテレータの使用の簡素化。参考までに皆さんと共有してください。詳細は次のとおりです:
1. イテレーターとは何ですか?
反復とは、名前が示すように、何かを何度も繰り返すことです (ループ内で行われていることと同じです)。 )。イテレータは __next__() メソッドを実装するオブジェクトです (このメソッドは呼び出すときにパラメータを必要としません)。通常、イテレータはシーケンスの最初の要素からアクセスを開始し、すべての要素が終了するまでアクセスします。すべての要素がアクセスされました。 [注]: イテレータは前方にのみ移動でき、後方には移動できません
[イテレータの利点]:
イテレータを使用する場合、反復プロセス全体のすべての要素を事前に準備する必要はありません。イテレータは要素を反復するときにのみ要素を計算します。要素は存在しないか、その前後で要素が存在しない可能性があります。したがって、反復子は、巨大なシーケンス、さらには無限のシーケンスを走査するのに適しています。代 2. イテレータ
A を作成し、組み込みファクトリ関数 It (Iteraable) を使用して、反復シーケンスをイテレータ
a=[1,2,3,4] b=(1,2,3) str='Tomwenxing' print(iter(a)) print(iter(b)) print(iter(str))
& lt; listiterator オブジェクト at 0x0000000001D6D550 & GT ;
< ; tupleiterator object at 0x0000000001D6D550>•Python には「イテレータ」クラスがないため、次の 2 つの特徴を持つクラスが使用されます「反復子」クラスと呼ぶことができます:2.
1.__next__()
メソッドがあり、コンテナの次の要素を返すか、StopIteration 例外をスローしますがあります。 __iter__()
メソッド。イテレーター自体を返します
#斐波那契数列 class Fabs(): def __init__(self,max): self.max=max self.n,self.a,self.b=0,0,1 def __iter__(self):#定义__iter__方法 return self def __next__(self):#定义__next__方法 if self.n<self.max: tmp=self.b self.a,self.b=self.b,self.a+self.b #等价于: #t=(self.a,self.a+self.b) #self.a=t[0] #self.b=t[1] self.n+=1 return tmp raise StopIteration print(Fabs(5)) for item in Fabs(10): print(item,end=' ')
演算結果:
<__main__.Fabs object at 0x00000000023F9278>1 1 2 3 5 8 13 21 34 55__next__()
方法都返回下一个元素或抛出StopIteration的容器对象
•由于Python中没有“迭代器”这个类,因此具有以下两个特性的类都可以称为“迭代器”类:
1、有__next__()
方法,返回容器的下一个元素或抛出StopIteration异常
2、有__iter__()
3.イテレータメソッド
1.iter.__next__ (): イテレータを返します 次の要素はあるが、次の要素がない場合、StopIteration 例外がスローされます
list=[1,2,3,4] list=iter(list) print(list.__next__()) print(list.__next__()) print(list.__next__()) print(list.__next__()) print(list.__next__())
Traceback (最新の呼び出し) last): ファイル "E:py3DemoHelloiterDemo.py"、7 行目、
1
234
2.iter.__iter__( ): イテレータ オブジェクト自体を返しますlist=[1,2,3,4] list=iter(list) print(list.__iter__())ログイン後にコピー
演算結果:
関連する推奨事項:Pythonイテレーターのnext()以上がPython イテレータの定義と簡単な使用法分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。