高度な機能 - イテレータ

イテレータ

反復:反復があなたの父を出産したように、あなたの祖父として、アップグレードされて、あなたの父があなたを出産した、反復を繰り返し、毎回繰り返されると言うことができますが、最後の結果に基づいています。コンピュータのような反復的な開発は、ソフトウェアのバージョンに基づいて更新されます。次のコードは、反復ではない、それは単に繰り返さ
ツールの反復:イテレータを。
その他の説明- >
の繰り返しは、Pythonの最も強力な機能の一つであるコレクションの要素にアクセスする方法です。
イテレータオブジェクトがトラバース位置であることを覚えていることができます。

while True:
    print('*'*10)

ディアン反復可能オブジェクト

以下のようなPythonオブジェクト、内のすべて

x = 1
name = 'nick'
lis = [1, 2]
tup = (1, 2)
dic = {'name': 'nick'}
s1 = {'a', 'b'}

def func():
    pass

f = open('49w.txt', 'w', encoding='utf-8)

すべてのオブジェクトについて、__iter__方法があるたびに、オブジェクトは、反復可能です。

# x = 1.__iter__  # SyntaxError: invalid syntax

# 以下都是可迭代的对象

name = 'nick'.__iter__
lis = [1, 2].__iter__
tup = (1, 2).__iter__
dic = {'name': 'nick'}.__iter__
s1 = {'a', 'b'}.__iter__
f = open('49w.txt', 'w', encoding='utf-8')
f.__iter__
f.close()

概要

反復可能なオブジェクト:Pythonの組み込みのSTR、リスト、タプル、辞書、セット、ファイルは反復可能です。
特徴:
 1.ビルトインオブジェクトは反復法と呼ばれることができますがあり__iter__。


二ディアンイテレータオブジェクト

反復可能な他の指標の値に依存しない間だけの文字列とリストは、インデックスの値に依存しています。だから我々は、他の反復可能なインデックス値に依存しないようにする方法を見つける必要があります。

方法が発見される前に、最初にすべての私たちのイテレータオブジェクトの概念を与える:オブジェクトが取得__iter__反復メソッドの戻り値を実行することができます。そして、反復可能オブジェクトは__next__メソッドを持っています。

# 不依赖索引的数据类型迭代取值
dic = {'a': 1, 'b': 2, 'c': 3}
iter_dic = dic.__iter__()
print(iter_dic.__next__())
print(iter_dic.__next__())
print(iter_dic.__next__())
# print(iter_dic.__next__())  # StopIteration:

a b c

# 依赖索引的数据类型迭代取值
lis = [1, 2, 3]
iter_lis = lis.__iter__()
print(iter_lis.__next__())
print(iter_lis.__next__())
print(iter_lis.__next__())
# print(iter_lis.__next__())  # StopIteration:

1 2 3
上記の方法は非常に複雑で、我々はダウン合理化、whileループを使用することができます。除いて...モジュールを例外処理...しようとする場合、それは後に詳述します。

s = 'hello'
iter_s = s.__iter__()

while True:
    try:
        print(iter_s.__next__())
    except StopIteration:
        break

h e l l o

概要

イテレータオブジェクト:反復実行は、オブジェクトを__iter__戻り値イテレータオブジェクトを取得することがあります。

特徴:

 メソッドが実行される1 __next__組み込み方法は、値イテレータオブジェクト取得する
 2.メソッドが実行される__iter__メソッドは、反復子自体取得する内蔵
 3イテレータオブジェクトファイル自体を。
短所:

 1.トラブルの値は、なくなって値を取るだけ一つずつ取る、とだけ後に採取することができます
 長さを取得するために使用できない2. LEN()メソッド

ループのための水と原則

ループの反復子ループが反復オブジェクトでなければなりませんと呼ばれます。

lis = [1, 2, 3]
for i in lis:
    print(i)

1 2 3
使用後イテレータ__iter__ためオブジェクト後、またはそれ自体をイテレータ、従ってループのために考慮していないが、反復イテレータオブジェクトまたはオブジェクトです。

そのため反復可能オブジェクトの使用__iter__メソッドの後イテレータオブジェクトとなり、イテレータオブジェクトはわずかなメモリ空間を占有し、彼は唯一の値__next__を使用するポストを吐き出すます。LIS = [1,2,3,4,5、...]卵と同等であり、LISの= [1,2,3,4,5、...] .__として iter__は母親に対応します鶏肉、卵あなたがする必要がある場合は、あなただけ__next__ことができます。
でPython2

print(range(10))  # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

中のpython3

print(range(10))  # range(0, 10)

おすすめ

転載: www.cnblogs.com/suren-apan/p/11374769.html