ホームページ > バックエンド開発 > Python チュートリアル > Python イテレータの定義と簡単な使用法分析

Python イテレータの定義と簡単な使用法分析

不言
リリース: 2018-05-02 15:41:38
オリジナル
1581 人が閲覧しました

この記事では、主に 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>

)メソッドはすべて次の要素を返すか、StopIteration コンテナ オブジェクトをスローします

•Python には「イテレータ」クラスがないため、次の 2 つの特徴を持つクラスが使用されます「反復子」クラスと呼ぶことができます:


1. __next__() メソッドがあり、コンテナの次の要素を返すか、StopIteration 例外をスローします

2. があります。 __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=&#39; &#39;)
ログイン後にコピー

演算結果:

<__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 行目、 print(list.__next__())

StopIteration

1

2
3

4


2.iter.__iter__( ): イテレータ オブジェクト自体を返します

list=[1,2,3,4]
list=iter(list)
print(list.__iter__())
ログイン後にコピー

演算結果:

関連する推奨事項:

Pythonイテレーターのnext()

以上がPython イテレータの定義と簡単な使用法分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート