在线客服
扫描二维码
下载博学谷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数据分析与应用课程为例,学习数据分析只要22课时。那么学习内容有哪些呢?内容大概包括了Python数据分析的相关知识。感兴趣的小伙伴可以一起来看看课程介绍。
10067
2019-09-25 17:34:14
学人工智能一定要先学Python吗?为什么?
学人工智能一定要学Python吗?不一定,如果大家会C/C++也可以不学Python,但是使用Python的脚本语言更加简单,所以为什么不使用更加轻松的编程语言呢?而且Python也是科学计算和数据分析的重要工具,学人工智能先学Python,也可以方便初学者。博学谷为此专门开设了Python+人工智能在线就业班课程,有兴趣学习人工智能的同学可以了解一下该课程。
6875
2019-08-21 14:41:48
零基础如何学好Python开发?
作为一个小白想学好Python开发应该先确定明确目标、做好学习Python系统规划、选择适合的开发工具、进阶提升学习规划、多练多看加深对Python程序的理解,想入门一门编程语言就需要不断的进行练习。
5435
2019-12-16 19:41:16
Python容器有哪些?都有什么作用?
Python容器有哪些?都有什么作用?相信对Python容器有一定了解的朋友都应该知道,Python常用的容器一般有元祖、集合、字典、列表四种。而这些Python容器的作用概括起来,就是统一存储、管理一系列数据。本文将带大家一个个分析Python容器的具体内容,想要把Python容器知识点梳理一遍的朋友,可以一起来看看。
5204
2020-01-10 17:17:11
怎么学习Python语言获得一技之长?
怎么学习Python语言?Python语言的语法结构简单比较适合零基础人群作为第一门编程语言来学习。建议制定一个系统的学习计划,一个连续学习编程语言的过程,学习Python理论,练习小项目积累实操经验。
4294
2020-07-10 10:20:22