当前位置:网站首页>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]所创,转载请带上原文链接,感谢
边栏推荐
- 用一个例子理解JS函数的底层处理机制
- The road of C + + Learning: from introduction to mastery
- Electron application uses electronic builder and electronic updater to realize automatic update
- Azure data factory (3) integrate azure Devops to realize CI / CD
- 前端工程师需要懂的前端面试题(c s s方面)总结(二)
- 事件监听问题
- Lane change detection
- Chainlink brings us election results into blockchain everipedia
- Even liver three all night, jvm77 high frequency interview questions detailed analysis, this?
- What are the common problems of DTU connection
猜你喜欢
Python saves the list data
Introduction to the structure of PDF417 bar code system
It's easy to operate. ThreadLocal can also be used as a cache
Music generation through deep neural network
What to do if you are squeezed by old programmers? I don't want to quit
一篇文章教会你使用Python网络爬虫下载酷狗音乐
Construction of encoder decoder model with keras LSTM
C#和C/C++混合编程系列5-内存管理之GC协同
Flink的DataSource三部曲之一:直接API
一篇文章带你了解CSS 渐变知识
随机推荐
[Xinge education] poor learning host computer series -- building step 7 Simulation Environment
How to get started with new HTML5 (2)
零基础打造一款属于自己的网页搜索引擎
一部完整的游戏,需要制作哪些音乐?
keras model.compile Loss function and optimizer
How to use parameters in ES6
JNI-Thread中start方法的呼叫與run方法的回撥分析
Free patent download tutorial (HowNet, Espacenet)
消息队列(MessageQueue)-分析
【自学unity2d传奇游戏开发】地图编辑器
Brief introduction of TF flags
Jetcache buried some of the operation, you can't accept it
MeterSphere开发者手册
只有1个字节的文件实际占用多少磁盘空间
Python基础数据类型——tuple浅析
Network security engineer Demo: the original * * is to get your computer administrator rights! [maintain]
axios学习笔记(二):轻松弄懂XHR的使用及如何封装简易axios
It's easy to operate. ThreadLocal can also be used as a cache
Wow, elasticsearch multi field weight sorting can play like this
Electron application uses electronic builder and electronic updater to realize automatic update