当前位置:网站首页>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]所创,转载请带上原文链接,感谢
边栏推荐
- 【自学unity2d传奇游戏开发】如何让角色动起来
- What are the criteria for selecting a cluster server?
- MeterSphere开发者手册
- NLP model Bert: from introduction to mastery (1)
- Discussion on the development practice of aspnetcore, a cross platform framework
- Read the advantages of Wi Fi 6 over Wi Fi 5 in 3 minutes
- electron 實現檔案下載管理器
- Solve the problem of database insert data garbled in PL / SQL developer
- What is the difference between data scientists and machine learning engineers? - kdnuggets
- 5.4 static resource mapping
猜你喜欢
vue-codemirror基本用法:实现搜索功能、代码折叠功能、获取编辑器值及时验证
零基础打造一款属于自己的网页搜索引擎
C#和C/C++混合编程系列5-内存管理之GC协同
ES6学习笔记(二):教你玩转类的继承和类的对象
What are the common problems of DTU connection
Natural language processing - BM25 commonly used in search
零基础打造一款属于自己的网页搜索引擎
一篇文章带你了解CSS3 背景知识
It is really necessary to build a distributed ID generation service
一篇文章带你了解CSS对齐方式
随机推荐
electron 實現檔案下載管理器
Electron application uses electronic builder and electronic updater to realize automatic update
Introduction to X Window System
01. SSH Remote terminal and websocket of go language
How to demote domain controllers and later in Windows Server 2012
Free patent download tutorial (HowNet, Espacenet)
開源一套極簡的前後端分離專案腳手架
MeterSphere开发者手册
FastThreadLocal 是什么鬼?吊打 ThreadLocal 的存在!!
Custom function form of pychar shortcut key
Discussion on the technical scheme of text de duplication (1)
6.2 handleradapter adapter processor (in-depth analysis of SSM and project practice)
How to get started with new HTML5 (2)
这个项目可以让你在几分钟快速了解某个编程语言
Python saves the list data
GUI engine evaluation index
It is really necessary to build a distributed ID generation service
只有1个字节的文件实际占用多少磁盘空间
Natural language processing - BM25 commonly used in search
What are manufacturing and new automation technologies?