PythonのIteratorとIterableの違いについて詳しく説明します。


Pythonの中でlist、truple、str、dictはこれらはすべて反復されることができて、しかし彼らは決してローズマリーではありません。なぜですか?
ディケンサとは大きな違いがあるので、リスト/truple/map/dictのデータの大きさは決まっています。つまり、どれぐらいのことがありますか?しかし、シーズマリーは何回実行するか分かりませんので、どれぐらいの要素があるか分かりません。nextを呼び出すたびに、次のステップに進みます。惰性です。
反復可能かどうかを判断し、Iterableを使う。

from collections import Iterable
isinstance({}, Iterable) --> True
isinstance((), Iterable) --> True
isinstance(100, Iterable) --> False
重機かどうかを判断して、Iteratorを使います。

from collections import Iterator
isinstance({}, Iterator) --> False
isinstance((), Iterator) --> False
isinstance( (x for x in range(10)), Iterator) --> True
だから、
for循環できるのはすべてIterableです。
next()ができるのはすべてIteratorです。
リスト、truple、dict、strのような集合データタイプは、ItrableではなくIteratorですが、iter()関数でIteratorオブジェクトを得ることができます。
Pythonのforサイクルはnextで実現されます。

for x in [1,2,3,4,5]:
 pass
に等しい

#   iterator  
it = iter([1,2,3,4,5])
while True:
 try:
  #      
  x = next(it);
 except StopIteration:
  #   StopIteration     
  break
以上のPythonの中でIteratorとIterableの違いについて詳しく説明します。つまり、小編が皆さんに共有している内容の全部です。参考にしてもらいたいです。どうぞよろしくお願いします。