当前位置:网站首页>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]所创,转载请带上原文链接,感谢
边栏推荐
- StickEngine-架构12-通信协议
- use Asponse.Words Working with word templates
- Recommendation system based on deep learning
- 開源一套極簡的前後端分離專案腳手架
- It is really necessary to build a distributed ID generation service
- How to get started with new HTML5 (2)
- 文件过多时ls命令为什么会卡住?
- ES6学习笔记(二):教你玩转类的继承和类的对象
- 每个大火的“线上狼人杀”平台,都离不开这个新功能
- 只有1个字节的文件实际占用多少磁盘空间
猜你喜欢
Live broadcast preview | micro service architecture Learning Series live broadcast phase 3
只有1个字节的文件实际占用多少磁盘空间
Brief introduction and advantages and disadvantages of deepwalk model
一篇文章教会你使用Python网络爬虫下载酷狗音乐
How to hide part of barcode text in barcode generation software
【字节跳动 秋招岗位开放啦】Ohayoo!放学别走,我想约你做游戏!!!
文件过多时ls命令为什么会卡住?
What are PLC Analog input and digital input
A course on word embedding
消息队列(MessageQueue)-分析
随机推荐
Three Python tips for reading, creating and running multiple files
How to get started with new HTML5 (2)
零基础打造一款属于自己的网页搜索引擎
Introduction to the structure of PDF417 bar code system
前端基础牢记的一些操作-Github仓库管理
How to use Python 2.7 after installing anaconda3?
DRF JWT authentication module and self customization
Mongodb (from 0 to 1), 11 days mongodb primary to intermediate advanced secret
What problems can clean architecture solve? - jbogard
JNI-Thread中start方法的呼叫與run方法的回撥分析
小游戏云开发入门
視覺滾動[反差美]
Python filtering sensitive word records
From zero learning artificial intelligence, open the road of career planning!
[Xinge education] poor learning host computer series -- building step 7 Simulation Environment
Python download module to accelerate the implementation of recording
Discussion on the technical scheme of text de duplication (1)
Read the advantages of Wi Fi 6 over Wi Fi 5 in 3 minutes
一篇文章带你了解CSS对齐方式
WeihanLi.Npoi 1.11.0/1.12.0 Release Notes