当前位置:网站首页>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]所创,转载请带上原文链接,感谢
边栏推荐
- Construction of encoder decoder model with keras LSTM
- Python基础变量类型——List浅析
- Analysis of partial source codes of qthread
- (1) ASP.NET Introduction to core3.1 Ocelot
- A brief history of neural networks
- ES6学习笔记(二):教你玩转类的继承和类的对象
- Humor: hacker programming is actually similar to machine learning!
- The dynamic thread pool in Kitty supports Nacos and Apollo multi configuration centers
- python100例項
- Details of dapr implementing distributed stateful service
猜你喜欢
ES6学习笔记(四):教你轻松搞懂ES6的新增语法
Wow, elasticsearch multi field weight sorting can play like this
文件过多时ls命令为什么会卡住?
每个大火的“线上狼人杀”平台,都离不开这个新功能
StickEngine-架构12-通信协议
一篇文章带你了解HTML表格及其主要属性介绍
vue-codemirror基本用法:实现搜索功能、代码折叠功能、获取编辑器值及时验证
零基础打造一款属于自己的网页搜索引擎
Jetcache buried some of the operation, you can't accept it
What are Devops
随机推荐
零基础打造一款属于自己的网页搜索引擎
6.1.1 handlermapping mapping processor (1) (in-depth analysis of SSM and project practice)
Analysis of query intention recognition
The road of C + + Learning: from introduction to mastery
Introduction to Google software testing
Azure data factory (3) integrate azure Devops to realize CI / CD
The dynamic thread pool in Kitty supports Nacos and Apollo multi configuration centers
【字节跳动 秋招岗位开放啦】Ohayoo!放学别走,我想约你做游戏!!!
一篇文章带你了解CSS 分页实例
Python基础数据类型——tuple浅析
零基础打造一款属于自己的网页搜索引擎
What are PLC Analog input and digital input
Humor: hacker programming is actually similar to machine learning!
Vite + TS quickly build vue3 project and introduce related features
Read the advantages of Wi Fi 6 over Wi Fi 5 in 3 minutes
Network security engineer Demo: the original * * is to get your computer administrator rights! [maintain]
Wow, elasticsearch multi field weight sorting can play like this
It is really necessary to build a distributed ID generation service
Introduction to the structure of PDF417 bar code system
Jetcache buried some of the operation, you can't accept it