python 迭代器

可迭代对象

可以直接作用于for循环的对象统称为可迭代对象

(iterable)。可以用isinstance()去判断一个对象是否是iterable对象。

数据类型

可以直接作用于for循环的数据类型一般分为两种

1.集合数据类型,如list、tuple、dict、set、string

2.generator,包括生成器和带yield的generator function

引入collections

使用需要引入collections中的Iterable。

示例如下:

python 复制代码
from collections import Iterable

注意:从collections中导入,从python3.3已经弃用,到python3.9时将停止使用。

可以用从collections.abc中导入

示例如下:

python 复制代码
from collections.abc import Iterable

判断是否可迭代对象

使用示例:

python 复制代码
print(isinstance([], Iterable))
print(isinstance((), Iterable))
print(isinstance({}, Iterable))
print(isinstance("", Iterable))
print(isinstance("zhangsan", Iterable))
print(isinstance((x for x in range(10)), Iterable))
print(isinstance(1, Iterable))

# 运算结果
# True
# True
# True
# True
# True
# True
# False

Next函数调用

迭代器:不但可以作用于for循环,还可以被next()函数不断调用并返回下一个值,

直到最后抛出StopIteration错误,表示无法继续返回下一个值。

示例如下:

python 复制代码
num = (x for x in range(5))
print(next(num))
print(next(num))

# 运算结果
# 0
# 1

Iterator对象

可以被next()函数调用并不断返回下一个值的对象称为迭代器(Iterator对象)。

引入Iterator

示例如下:

python 复制代码
from collections.abc import Iterator

判断Iterator对象

Isinstance()函数还可以用来判断一个对象是否是Iterator对象。

示例如下:

python 复制代码
print(isinstance([], Iterator))
print(isinstance((), Iterator))
print(isinstance({}, Iterator))
print(isinstance("", Iterator))
print(isinstance("zhangsan", Iterator))
print(isinstance((x for x in range(10)), Iterator))
print(isinstance(1, Iterator))

# 运算结果
# False
# False
# False
# False
# False
# True
# False

转化Iterator对象

可以通过iter函数转化为Iterator对象。

示例如下:

python 复制代码
iter1 = iter([1, 2, 3, 4, 5, 6])
print(next(iter1))
print(next(iter1))

# 运算结果
# 1
# 2

总结

python 迭代器相关知识学习笔记

相关推荐
xys_6788 小时前
JavaEE通关手册:初识Java
java·开发语言
2601_967980118 小时前
Python自动化办公:模块、库与样式调整教程
python·excel·自动化办公·openpyxl·样式调整
喵个咪8 小时前
GoWind CMS 拆解:发布审批——多级推进、逐级角色与全程留痕
前端·后端·go
喵个咪8 小时前
GoWind Flow 拆解:一个 Go 工作流引擎与它的双模式设计器
前端·后端·go
喵个咪8 小时前
GoWind CMS 拆解:搜索三板斧——高亮、联想、同义词
后端·搜索引擎·go
喵个咪8 小时前
GoWind 拆解:AI Agent 编排引擎——波次并行、子图递归与人工审批
人工智能·后端·go
长沙三为智能科技8 小时前
GEO与传统SEO的5个关键差异:排名与被引用、关键词与答案型的全维度对比
python·aigc·seo·ai搜索·geo优化
喵个咪9 小时前
GoWind Admin 拆解:打印模板设计器——从画布到服务端 PDF 的完整打印链路
前端·后端·go
ShineWinsu9 小时前
对于Qt:QTableWidget常见属性以及QTableWidgetItem类的解析
开发语言·c++·qt·gui·客户端·表格·qtablewidget
喵个咪9 小时前
GoWind Admin 拆解:BI 大屏设计器——schema 即 JSON、resolver 注入与三张快照表的口径谱系
大数据·后端·go