This article mainly introduces the definition and simple usage of Python iterators, and analyzes the concept, principle, creation and use of iterators in the form of examples. Friends in need can refer to the following
The examples in this article describe Python iterator definition and simple usage. Share it with everyone for your reference, the details are as follows:
1. What is an iterator
Iteration, as the name suggests, is to repeat something many times (just do it in a loop now) ). An iterator is an object that implements the __next__() method (this method does not require any parameters when called). It is a way to access an iterable sequence. Usually it starts accessing from the first element of the sequence until all It ends when all elements have been accessed. [Note]: Iterators can only move forward but not backward
[Advantages of iterators]:
There are no requirements for using iterators Prepare all elements of the entire iteration in advance. The iterator only calculates an element when it iterates to it, and the element may not exist or be destroyed before or after. Therefore iterators are suitable for traversing some huge or even infinite sequences.
2. Create an iterator
A. Use the built-in factory function iter(iterable) to convert an iterable sequence into an iterator
a=[1,2,3,4] b=(1,2,3) str='Tomwenxing' print(iter(a)) print(iter(b)) print(iter(str))
Run results:
B. Custom iterator# & LT; Listitrator Object at 0x000000000001d6d550 & GT; lt; Iterator Object at 0x0000000001d6d550 & GT;
•Essentially, every time the iterator in Python is called, the
__next__() method returns the next An element or a container object that throws StopIteration•Since there is no "iterator" class in Python, classes with the following two characteristics can be called "iterator" classes:
1. There is a
__next__() method, which returns the next element of the container or throws a StopIteration exception 2. There is a
method, which returns the iterator itself <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:py;">#斐波那契数列
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;)</pre><div class="contentsignin">Copy after login</div></div>
Run result:
1 1 2 3 5 8 13 21 34 553. Iterator methods
1.iter.__next__(): Returns the next element of the iterator, but throws a StopIteration exception when there is no next element
list=[1,2,3,4]
list=iter(list)
print(list.__next__())
print(list.__next__())
print(list.__next__())
print(list.__next__())
print(list.__next__())
File "E:\py3Demo\Hello\iterDemo.py", line 7, in < module>Print(list.__next__())
##2.iter.__iter__ (): Return the iterator object itself
StopIteration
1
2
3
4
list=[1,2,3,4] list=iter(list) print(list.__iter__())
Related recommendations:
Usage examples of next() in python iterator
The above is the detailed content of Python iterator definition and simple usage analysis. For more information, please follow other related articles on the PHP Chinese website!