当前位置:网站首页>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]所创,转载请带上原文链接,感谢
边栏推荐
- electron 實現檔案下載管理器
- 百万年薪,国内工作6年的前辈想和你分享这四点
- use Asponse.Words Working with word templates
- [C] (original) step by step teach you to customize the control element - 04, ProgressBar (progress bar)
- python100例項
- Cglib 如何实现多重代理?
- 有了这个神器,快速告别垃圾短信邮件
- NLP model Bert: from introduction to mastery (2)
- Analysis of ThreadLocal principle
- Analysis of etcd core mechanism
猜你喜欢

一路踩坑,被迫聊聊 C# 代码调试技巧和远程调试

NLP model Bert: from introduction to mastery (2)

StickEngine-架构12-通信协议

每个大火的“线上狼人杀”平台,都离不开这个新功能

The dynamic thread pool in Kitty supports Nacos and Apollo multi configuration centers
![Network security engineer Demo: the original * * is to get your computer administrator rights! [maintain]](/img/14/ede1ffa7811dbc2a5b15b9a7b17a5e.jpg)
Network security engineer Demo: the original * * is to get your computer administrator rights! [maintain]

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

Even liver three all night, jvm77 high frequency interview questions detailed analysis, this?

Brief introduction and advantages and disadvantages of deepwalk model

axios学习笔记(二):轻松弄懂XHR的使用及如何封装简易axios
随机推荐
Python download module to accelerate the implementation of recording
html+vue.js 實現分頁可相容IE
Named entity recognition in natural language processing: tanford core LP ner (1)
StickEngine-架构12-通信协议
Our best practices for writing react components
Word segmentation, naming subject recognition, part of speech and grammatical analysis in natural language processing
Python基础变量类型——List浅析
Python filtering sensitive word records
前端未來趨勢之原生API:Web Components
游戏主题音乐对游戏的作用
Introduction to X Window System
Free patent download tutorial (HowNet, Espacenet)
Introduction to Google software testing
[actual combat of flutter] pubspec.yaml Configuration file details
keras model.compile Loss function and optimizer
WeihanLi.Npoi 1.11.0/1.12.0 Release Notes
零基础打造一款属于自己的网页搜索引擎
python100例項
Vite + TS quickly build vue3 project and introduce related features
Network security engineer Demo: the original * * is to get your computer administrator rights! [maintain]