在线客服
扫描二维码
下载博学谷APP扫描二维码
关注博学谷微信公众号
怎么理解Python迭代器与生成器?在Python中,使用for ... in ... 可以对list、tuple、set和dict数据类型进行迭代,可以把所有数据都过滤出来。如下:
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、迭代器
对字符串,列表,使用内置函数 iter 转化为可迭代对象, 使用next关键字,可迭代对象每次取其中的一个值。如下面代码:
nums = [1,2,3,4]
nums = iter(nums)
print(next(nums))
print(next(nums))
print(next(nums))
print(next(nums))
输出
1
2
3
4
如果超出数据的长度,将会报错 StopIteration
nums = [1,2,3,4]
nums = iter(nums)
print(next(nums))
print(next(nums))
print(next(nums))
print(next(nums))
print(next(nums)) # 超过数据长度,报错 StopIteration
2、生成器
使用生成器可以创建迭代器。生成器主要使用 yeild 关键字,每次调用 next 时会与yeild 定义的对应。例如:我们需要取 10~20之间的数据,步长为2,可以使用如下code
for x in range(10,20,2):
print(x)
但是如果步长设置为 0.5,如下代码:
for x in range(10,20,0.5):
print(x)
将会报错
TypeError: 'float' object cannot be interpreted as an integer
这个时候,我们就可以使用 生成器来自定义一个函数
def drange(start,stop,step):
x = start
while x< stop:
yield x
x += step
for x in drange(10,20,0.5):
print(x)
再举一个例子:
给定一个字符串,倒叙排列:
def reverse(data):
for x in range(len(data)-1,-1,-1):
yield data[x]
for x in reverse('gold'):
print(x)
看到这里,相信大家对于理解Python迭代器与生成器已经有了一定的理解。关于更多的干货内容,尽在博学谷IT培训平台,从零基础到进阶提升各个学习阶段的学习内容都在等着你!
— 申请免费试学名额 —
在职想转行提升,担心学不会?根据个人情况规划学习路线,闯关式自适应学习模式保证学习效果
讲师一对一辅导,在线答疑解惑,指导就业!
相关推荐 更多
新手学Python可行吗?需要什么基础?
新手学Python可行吗?其实Python可以说是最适合新手学习的编程语言。为什么这么说呢?难道学Python不需要什么基础吗?其实如果学习者有一定的计算机基础,学Python会更快,但是没基础也能学好Python,只要肯下功夫。大家了解了新手学Python的可行性之后,还要掌握零基础如何学习Python的方法,毕竟自信和决心只是学习的第一步。
5339
2019-08-19 13:38:17
Python单行代码实现具体功能
众所周知Python编程语言应用广泛,组我诶一门优秀的编程特城的函数式编程语言,Python可以大大提高Python开发工程师编程速度并且改进软件质量。与此同时很多同学们都听说过Python编程语言易学易用,具体在那些方面有所体现呢?小编在这里为大家提供几条Python编程中单行代码就可以实现具体功能的案例。让大家对Python的强大有更深入的了解。
17452
2019-12-13 18:58:37
Python代码写好了怎么运行?
Python代码写好了怎么运行?相信问这样问题的朋友一定是刚刚入门Python的初学者。本文就来为大家详细讲讲如何运行Python代码。一般来讲,运行Python代码的方式有两种,一是在Python交互式命令行下运行;另一种是使用文本编辑器,在命令行中直接运行。这两种方法各有优缺点,下面我们以hello world来举例,为大家打开Python学习的大门,现在就一起看看吧!
15496
2020-04-15 15:49:48
Python通用装饰器的使用方法介绍
Python通用装饰器的使用方法介绍,Python通用装饰器带有参数的装饰器,通过学习通用装饰器的使用写出通用的装饰器,实现代码的运行。
3277
2021-12-03 17:22:53
HTML的作用是什么?用来做什么?
HTML的作用是什么?用来做什么?HTML用来开发网页的是开发网页的语言。超文本标记语言是一种用于创建网页的标准标记语言,可以使用HTML来建立WEB站点,HTML运行在浏览器上由浏览器来解析。
10058
2021-12-10 16:00:06