在线客服
扫描二维码
下载博学谷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学习指南。
8148
2019-07-31 16:01:45
只学Python能找到工作吗?还需要学习什么技能?
只学Python能找到工作吗?当然可以,像是爬虫抓取、测试都是可以从事的的方向。还需要学习什么技能?想要有广阔的发展空间,最好还是结合web开发、云计算、人工智能、自动化运维一起学,只有学会利用Python,把它作为一个语言工具才能最大发挥它的价值。下面我们来看看Python适合与哪些技能一起学。
7357
2019-09-27 21:45:10
零基础学Python的过程有多难?需要多久?
Python是一门简单高效,应用范围广泛的计算机语言。先我们要知道Python已经算是一门相对其他编程语言而言,最适合零基础新手学习的开发语言,换句话说,如果连Python都学不进去就不要考虑进入IT技术行业了。那么零基础学Python的过程有多难呢?下面我们一起来看看Python的学习内容和规划。
8973
2019-09-29 14:03:33
有没有通俗易懂适合零基础学习的Python课程?
有没有通俗易懂适合零基础学习的Python课程?对零基础的人来说,Python简单易上手,可以说是初学者的首选编程语言。但是零基础入门,毕竟还是有很大难度的。因此博学谷专门研发了面向零基础学习者的课程,课程内容采用循序渐进,深入浅出的形式,充分保证了大家可以跟上课程进度。下面介绍一下课程详情。
5881
2019-10-15 19:45:11
从事数据科学Python和R语言学哪个好?
从事数据科学Python和R语言学哪个好?答案肯定是学Python更好,当然也不是就完全否定了学习R语言的作用和意义。只是和R语言比较起来,Python的优势更加明显。首先,Python应用场景更加广泛,且上手简单,在数据处理方面有着强大的能力。因此,如果是从事数据科学的朋友,选择学习Python会更好。
5686
2020-02-21 18:52:17
热门文章
- 前端是什么
- 前端开发的工作职责
- 前端开发需要会什么?先掌握这三大核心关键技术
- 前端开发的工作方向有哪些?
- 简历加分-4步写出HR想要的简历
- 程序员如何突击面试?两大招带你拿下面试官
- 程序员面试技巧
- 架构师的厉害之处竟然是这……
- 架构师书籍推荐
- 懂了这些,才能成为架构师 查看更多
扫描二维码,了解更多信息
