Python iterator definition and simple usage analysis

不言
Release: 2018-05-02 15:41:38
Original
1539 people have browsed it

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))
Copy after login

Run results:

# & LT; Listitrator Object at 0x000000000001d6d550 & GT; lt; Iterator Object at 0x0000000001d6d550 & GT;

B. Custom iterator

•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

__iter__()

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&lt;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=&amp;#39; &amp;#39;)</pre><div class="contentsignin">Copy after login</div></div>Run result:

<__main__.Fabs object at 0x00000000023F9278>
1 1 2 3 5 8 13 21 34 55


3. 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__())
Copy after login
Running results:

Traceback (most recent call last):
File "E:\py3Demo\Hello\iterDemo.py", line 7, in < module>

Print(list.__next__())
StopIteration
1
2
3
4

##2.iter.__iter__ (): Return the iterator object itself

list=[1,2,3,4]
list=iter(list)
print(list.__iter__())
Copy after login
Running result:

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!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template