网站首页 > 技术文章 正文
先解释几个易混淆的概念:
- 可迭代对象(Iterable)
- 迭代器(Iterator)
- 迭代(Iteration)
Python中任意的对象,只要它定义了可以返回一个迭代器的__iter__方法,或者定义了可以支持下标索引的__getitem__方法,那么它就是一个可迭代对象。简单说,可迭代对象就是能提供迭代器的任意对象。
Python中任意的对象,只要定义了next(Python2) 或者__next__方法,它就是一个迭代器。注意:可迭代对象不一定是迭代器,也即对象即使支持迭代,因为缺少next或__next__方法也不能直接对其进行迭代操作,这个时候可以使用内置函数iter来返回一个迭代器对象。
迭代用简单的话讲,它就是从某个地方(比如一个列表)取出一个元素的过程。当我们使用一个循环来遍历某个东西时,这个过程本身就叫迭代。
生成器也是一种迭代器,但是你只能对其迭代一次。这是因为它们并没有把所有的值存在内存中,而是在运行时生成值。你通过遍历来使用它们,要么用一个“for”循环,要么将它们传递给任意可以进行迭代的函数和结构。大多数时候生成器是以函数来实现的。然而,它们并不返回(return)一个值,而是提供(yield)一个值,这样就不必担心使用大量资源。例如,计算斐波那契数列的生成器如下所示:
Bash
# generator version
def fibon(n):
a = b = 1
for i in range(n):
yield a
a, b = b, a + b
函数使用方法如下:
Bash
for x in fibon(1000000):
print(x)
猜你喜欢
- 2025-05-14 Python爬虫实战 | 利用多线程爬取 LOL 高清壁纸
- 2025-05-14 你想不到的,那些在 Python 中输出列表的技巧
- 2025-05-14 python自动化脚本,解放你的双手(4)
- 2025-05-14 Python索引技巧
- 2025-05-14 在 Python 中从列表中删除换行符的多种方法
- 2025-05-14 Python的元组,没想象的那么简单
- 2025-05-14 对Python中序列的个人理解
- 2025-05-14 简单学Python——字符串
- 2025-05-14 python笔记5:序列
- 2025-05-14 Python 技巧讲解:numpy.array 操作使用简单总结(含示例代码)
- 268℃Python短文,Python中的嵌套条件语句(六)
- 267℃python笔记:for循环嵌套。end=""的作用,图形打印
- 265℃PythonNet:实现Python与.Net代码相互调用!
- 261℃Python实现字符串小写转大写并写入文件
- 259℃Python操作Sqlserver数据库(多库同时异步执行:增删改查)
- 119℃原来2025是完美的平方年,一起探索六种平方的算吧
- 100℃Python 和 JavaScript 终于联姻了!PythonMonkey 要火?
- 94℃Ollama v0.4.5-v0.4.7 更新集合:Ollama Python 库改进、新模型支持
- 最近发表
- 标签列表
-
- python中类 (31)
- python 迭代 (34)
- python 小写 (35)
- python怎么输出 (33)
- python 日志 (35)
- python语音 (31)
- python 工程师 (34)
- python3 安装 (31)
- python音乐 (31)
- 安卓 python (32)
- python 小游戏 (32)
- python 安卓 (31)
- python聚类 (34)
- python向量 (31)
- python大全 (31)
- python次方 (33)
- python桌面 (32)
- python总结 (34)
- python浏览器 (32)
- python 请求 (32)
- python 前端 (32)
- python验证码 (33)
- python 题目 (32)
- python 文件写 (33)
- python中的用法 (32)