当前位置:网站首页>How to understand Python iterators and generators?
How to understand Python iterators and generators?
2020-11-06 20:07:00 【SXXpenguin】
How to understand Python Iterators and generators ? stay Python in , Use for ... in ... It can be done to list、tuple、set and dict Data types are iterated , You can filter out all the data . as follows :
for element in [1, 2, 3]:
print(element)
for element in (1, 2, 3):
print(element)
for key in {'one':1, 'two':2}:
print(key)
for char in "123":
print(char)
for line in open("myfile.txt"):
print(line, end='')
1、 iterator
The string , list , Use built-in functions iter Convert to an iteratable object , Use next keyword , Iteratable objects take one value at a time . Like the following code :
nums = [1,2,3,4]
nums = iter(nums)
print(next(nums))
print(next(nums))
print(next(nums))
print(next(nums))
Output
1
2
3
4
If it exceeds the length of the data , Will be an error StopIteration
nums = [1,2,3,4]
nums = iter(nums)
print(next(nums))
print(next(nums))
print(next(nums))
print(next(nums))
print(next(nums)) # Over data length , Report errors StopIteration
2、 generator
Using generators, you can create iterators . The generator mainly uses yeild keyword , Every time you call next When it comes to yeild The definition of the corresponding . for example : We need to take 10~20 Data between , In steps of 2, You can use the following code
for x in range(10,20,2):
print(x)
But if the step size is set to 0.5, The following code :
for x in range(10,20,0.5):
print(x)
Will be an error
TypeError: 'float' object cannot be interpreted as an integer
This is the time , We can use The generator comes from defining a function
def drange(start,stop,step):
x = start
while x< stop:
yield x
x += step
for x in drange(10,20,0.5):
print(x)
Another example :
Given a string , Flashback to arrange :
def reverse(data):
for x in range(len(data)-1,-1,-1):
yield data[x]
for x in reverse('gold'):
print(x)
See here , I believe that we can understand Python Iterators and generators have a certain understanding . More about dry goods , In the erudite Valley IT Training platform , From zero basis to advanced promotion, the learning content of each stage of learning is waiting for you !
Zhengzhou painless people hospital which good http://fk.zztjyy.com/
Zhengzhou see gynecology which hospital is good http://www.zztjfk.com/
Zhengzhou see gynecology which good http://www.xasgfuke.cn/
版权声明
本文为[SXXpenguin]所创,转载请带上原文链接,感谢
边栏推荐
猜你喜欢

仅用六种字符来完成Hello World,你能做到吗?

Flink的DataSource三部曲之一:直接API

Python download module to accelerate the implementation of recording

事件监听问题

一篇文章教会你使用Python网络爬虫下载酷狗音乐

Mac installation hanlp, and win installation and use

With the advent of tensorflow 2.0, can pytoch still shake the status of big brother?

Lane change detection

一篇文章带你了解CSS 渐变知识

A brief history of neural networks
随机推荐
MeterSphere开发者手册
Free patent download tutorial (HowNet, Espacenet)
python100例項
Brief introduction of TF flags
Who says cat can't do link tracking? Stand up for me
How to use parameters in ES6
hdu3974 Assign the task線段樹 dfs序
FastThreadLocal 是什么鬼?吊打 ThreadLocal 的存在!!
6.6.1 localeresolver internationalization parser (1) (in-depth analysis of SSM and project practice)
Windows 10 tensorflow (2) regression analysis of principles, deep learning framework (gradient descent method to solve regression parameters)
一篇文章带你了解CSS对齐方式
What are the criteria for selecting a cluster server?
use Asponse.Words Working with word templates
Five vuex plug-ins for your next vuejs project
Discussion on the technical scheme of text de duplication (1)
Recommendation system based on deep learning
Interface pressure test: installation, use and instruction of siege pressure test
視覺滾動[反差美]
Introduction to X Window System
Discussion on the development practice of aspnetcore, a cross platform framework