Home  >  Article  >  Backend Development  >  Python iterator definition and simple usage analysis

Python iterator definition and simple usage analysis

不言
不言Original
2018-05-02 15:41:381493browse

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:

# & 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 <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>Run result:

d210c61fd2686fd6b5edf12782e8f0cc
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__())
Running results:

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

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__())
Running result:

0abd120954ee99d0333ef82d6f366b67

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!

Statement:
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