迭代器Iterator(列表生成器、可迭代的如何生成迭代器)

迭代器介绍

  1. 列表生成器generator:直接生成且可以调用
python 复制代码
a=[i*2 for i in range(10)]
print(a)
print(a[2])
结果:
[0, 2, 4, 6, 8, 10, 12, 14, 16, 18]
4
  1. 迭代器:
python 复制代码
a=(i*2 for i in range(10))
print(a) #内存地址
# 方式一:使用__next__()获取当前生成
print(a.__next__())  #值为0
print(a.__next__())  #值为2
# 方式二循环产生
b=[]
for i in a:
   b.append(i)
print(b)  #[4, 6, 8, 10, 12, 14, 16, 18]
  1. 可迭代:iterable
    • 所有可以使用for循环的都是可迭代的,如list、tuple、dict、set、str、generator列表生成器等都可迭代
    • 可迭代的都可以变成迭代器
python 复制代码
a=[1,2,3,4,5,6,7,8,9]
b=iter(a)  #把可迭代对象变成迭代器,迭代器是无限大数据流
print(next(b)) #同__next__()
print(isinstance(b, Iterator))  #判断是否是迭代器
相关推荐
充值内卷5 分钟前
C++单文件迷宫游戏:TauriCPP 开发全记录
开发语言·c++·游戏
Antruly6 分钟前
C++ Web 开发选型漫谈:从 Drogon 到 libuvcpp + uvp,八个项目的定位、兼容性与务实排名
开发语言·前端·c++
用户298698530148 分钟前
Python 实现 Markdown 与 Word 文档互转
python·api·markdown
EnCi Zheng10 分钟前
AI Agent工具调用防护层怎么写-一份能直接跑的Python四层拦截实现
大数据·开发语言·python
2601_9498477513 分钟前
Cookie 跨端三方库仓颉适配全流程
python·django·flask
万粉变现经纪人17 分钟前
如何解决 pip install 安装报错 检测到 yanked 版本需更换可用版本 问题
人工智能·python·scrapy·numpy·pandas·pyqt·pip
香蕉大香蕉(06敬畏市场)21 分钟前
高频八股 · Java 并发编程(10):异步、ThreadLocal 与虚拟线程(收官)
java·开发语言·网络·jvm·python·ai·实习
念何架构之路25 分钟前
Go reflect包值操作 Value 的读写、可设置性与 interface 布局
开发语言·后端·golang
JustNow_Man27 分钟前
【Harness】本地文本向量化搜索解决方案--qmd
git·python·算法
小林ixn27 分钟前
用 FastAPI + SQLAlchemy 从零手搓一个博客系统:一套能落地、能讲清楚的 RESTful 后端
后端·python·fastapi