前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >五、python学习笔记-函数-迭代器

五、python学习笔记-函数-迭代器

原创
作者头像
堕落飞鸟
发布2022-01-13 09:05:32
1950
发布2022-01-13 09:05:32
举报
文章被收录于专栏:飞鸟的专栏
代码语言:javascript
复制
#迭代器
"""
1、生成器都是迭代器,迭代器不一定是生成器
2、满足下面连个条件就是迭代器
    有iter方法
    有next方法
"""

# 示例1、一个迭代器
list1 = [1, 2, 4]
d = iter(list1)

# 打印类型
print(type(d))

# 取值
next(d)
next(d)

# for循环本质
"""
1、调用可迭代对象的iter方法返回一个迭代器对象
2、调用迭代器的next方法取值
3、处理stopIteration异常(取完迭代器中所有值)
"""

# 判断是否是迭代器
from collections import Iterable, Iterator
print(isinstance(d, Iterator))  # 是否是迭代器
print(isinstance(d, Iterable))  # 是否可迭代

# 小结
"""
1、凡是可是使用for循环的都是Iterable
2、凡是有next的都是Iterator
3、集合数据类型如list,truple,dict,str,都是Itrable不是Iterator,但可以通过iter()函数获得一个Iterator对象
"""

# 示例2Iterable和Iterator
# 元组字典都是可迭代的
print(isinstance({}, Iterable))
print(isinstance((), Iterable))
print(isinstance(100, Iterable))

# 元组字典都不是迭代器,但是可以通过iter(),函数获得一个迭代器
print(isinstance({}, Iterator))
print(isinstance((), Iterator))
print(isinstance((iter([])), Iterator))

# for循环本质1,调用可迭代对象的iter方法返回一个迭代器对象
print(isinstance((x for x in range(10)), Iterator))

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档