python迭代器

"""
什么是迭代器?
迭代是python中访问集合元素的一种非常强大的一种方式。迭代器是一个可以记住遍历位置的对象,
因此不会像列表那样一次性全部生成,而是可以等到用的时候才生成,因此节省了大量的内存资源。
迭代器对象从集合中的第一个元素开始访问,直到所有的元素被访问完。迭代器有两个方法:iter()和next()方法。
eg:迭代器是用来帮助我们记录每次迭代访问到的位置,当我们对迭代器使用 next()函数的时候,迭代器会向我们返回它所记录位置的下一个位置的数据。
"""
#iter()获取一个可迭代对象的迭代器
nums = [1, 2, 3, 4]	# 是可迭代对象
print(type(nums))	# <class 'list'>
nums_iter = iter(nums)	# 是迭代器
print(type(nums_iter))	# <class 'list_iterator'>
#next()获取迭代器的数据
nums = [1, 2, 3, 4]	# 可迭代对象
nums_iter = iter(nums)	# 迭代器
num = next(nums_iter)
print(num)
num = next(nums_iter)
print(num)
num = next(nums_iter)
print(num)
num = next(nums_iter)
print(num)

"""
for循环的过程可以通过上面的iter()和next()函数来实现,即:
1、先调用iter(),将nums当作实参,得到nums这个可迭代对象的迭代器
2、调用next(),将上一步得到的迭代器 进行取值
3、将上一步取出来的值 赋值给num这个变量
4、执行for循环体中的代码,print(num)
5、重复执行2/3/4步,当nums中所有数据都获取完毕后,会在下一次调用next的时候产生Stopiteration异常。
只不过 for循环中自带了异常处理,当它遇到Stopiteration异常的时候,会自动结束for循环
"""

"""
1.凡是可作用于 for循环的对象都是 Iterable 类型;
2.但是可作用于 next()函数的对象都是 Iterator 类型;
3.集合数据类型如 list、dict、str 等是 Iterable 但不是 Iterator, 不过可以通过 iter() 函数获得一个 Iterator 对象
"""

"""
生成器

"""

  • 8
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

詹姆斯_杨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值