当前位置:网站首页>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]所创,转载请带上原文链接,感谢
边栏推荐
- How to hide part of barcode text in barcode generation software
- hdu3974 Assign the task線段樹 dfs序
- 仅用六种字符来完成Hello World,你能做到吗?
- 一部完整的游戏,需要制作哪些音乐?
- Cglib 如何实现多重代理?
- Live broadcast preview | micro service architecture Learning Series live broadcast phase 3
- [efficiency optimization] Nani? Memory overflow again?! It's time to sum up the wave!!
- How to customize sorting for pandas dataframe
- Basic principle and application of iptables
- Mac installation hanlp, and win installation and use
猜你喜欢
大道至简 html + js 实现最朴实的小游戏俄罗斯方块
ES6学习笔记(四):教你轻松搞懂ES6的新增语法
Network security engineer Demo: the original * * is to get your computer administrator rights! [maintain]
一篇文章带你了解HTML表格及其主要属性介绍
Brief introduction and advantages and disadvantages of deepwalk model
Named entity recognition in natural language processing: tanford core LP ner (1)
代码生成器插件与Creator预制体文件解析
Python基础数据类型——tuple浅析
Introduction to the structure of PDF417 bar code system
What are PLC Analog input and digital input
随机推荐
Five vuex plug-ins for your next vuejs project
仅用六种字符来完成Hello World,你能做到吗?
只有1个字节的文件实际占用多少磁盘空间
What is the difference between data scientists and machine learning engineers? - kdnuggets
Introduction to Google software testing
Mac installation hanlp, and win installation and use
华为云微认证考试简介
新建一个空文件占用多少磁盘空间?
Three Python tips for reading, creating and running multiple files
前端工程师需要懂的前端面试题(c s s方面)总结(二)
小游戏云开发入门
01. SSH Remote terminal and websocket of go language
Construction of encoder decoder model with keras LSTM
事件监听问题
Elasticsearch数据库 | Elasticsearch-7.5.0应用搭建实战
6.1.2 handlermapping mapping processor (2) (in-depth analysis of SSM and project practice)
文件过多时ls命令为什么会卡住?
If PPT is drawn like this, can the defense of work report be passed?
Named entity recognition in natural language processing: tanford core LP ner (1)
Natural language processing - wrong word recognition (based on Python) kenlm, pycorrector