当前位置:网站首页>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]所创,转载请带上原文链接,感谢
边栏推荐
- Details of dapr implementing distributed stateful service
- 【自学unity2d传奇游戏开发】如何让角色动起来
- 每个大火的“线上狼人杀”平台,都离不开这个新功能
- Analysis of query intention recognition
- Python filtering sensitive word records
- Custom function form of pychar shortcut key
- Wow, elasticsearch multi field weight sorting can play like this
- electron 實現檔案下載管理器
- Python saves the list data
- Interface pressure test: installation, use and instruction of siege pressure test
猜你喜欢

Building and visualizing decision tree with Python

C + + and C + + programmers are about to be eliminated from the market

一篇文章带你了解CSS 分页实例

有了这个神器,快速告别垃圾短信邮件

只有1个字节的文件实际占用多少磁盘空间

Python Jieba segmentation (stuttering segmentation), extracting words, loading words, modifying word frequency, defining thesaurus

Shh! Is this really good for asynchronous events?

For a while, a dynamic thread pool was created, and the source code was put into GitHub

Windows 10 tensorflow (2) regression analysis of principles, deep learning framework (gradient descent method to solve regression parameters)

一篇文章带你了解HTML表格及其主要属性介绍
随机推荐
Construction of encoder decoder model with keras LSTM
It is really necessary to build a distributed ID generation service
Azure data factory (3) integrate azure Devops to realize CI / CD
Free patent download tutorial (HowNet, Espacenet)
Python基础变量类型——List浅析
How to use Python 2.7 after installing anaconda3?
Using NLP and ml to extract and construct web data
hdu3974 Assign the task線段樹 dfs序
Chainlink brings us election results into blockchain everipedia
NLP model Bert: from introduction to mastery (2)
Analysis of partial source codes of qthread
Solve the problem of database insert data garbled in PL / SQL developer
electron 實現檔案下載管理器
Our best practices for writing react components
Asp.Net Core learning notes: Introduction
What are Devops
[C] (original) step by step teach you to customize the control element - 04, ProgressBar (progress bar)
Read the advantages of Wi Fi 6 over Wi Fi 5 in 3 minutes
StickEngine-架构12-通信协议
百万年薪,国内工作6年的前辈想和你分享这四点