Python中yield和next的区别

yield 和next都是Python中用于控制迭代的关键字,但它们的作用和使用方式是不同的。

yield是用在函数中的,它会使函数变成一个生成器。 当函数执行到yield语句时,函数会暂停并保存当前的状态,然后返回yield后面的值。下次再调用这个生成器时,函数会从上次暂停的地方继续执行。

next则是用来获取迭代器或生成器的下一个值。 当你调用next并传入一个迭代器或生成器时,它会返回迭代器或生成器的下一个值。如果迭代器或生成器没有更多的值,next会抛出StopIteration异常。

这是一个简单的例子来说明它们的区别

python 复制代码
def my_generator():
    yield 1
    yield 2
    yield 3

gen = my_generator()  # 创建一个生成器

print(next(gen))  # 输出: 1
print(next(gen))  # 输出: 2
print(next(gen))  # 输出: 3

在这个例子中,my_generator是一个生成器函数,它使用yield来生成值。然后我们使用next来获取生成器的下一个值。

相关推荐
本地化文档17 分钟前
pygmt-docs-l10n
python·github·gitcode·sphinx·pygmt·gmt·crowdin
Web3&Basketball18 分钟前
用 SGLang 决策端点做毫秒级 Agent 路由
python·大模型·agent·强化学习·多模态·推理
yi01120 分钟前
DAY19: LeetCode 28 找出字符串中第一个匹配项的下标
人工智能·笔记·python·算法·leetcode
hhzz38 分钟前
【YOLO 入门到精通 08】推理预测完全指南:多数据源、流式推理与性能优化
人工智能·python·yolo·计算机视觉·性能优化
benchmark_cc42 分钟前
第一次补历史 K 线:按股票拆还是按日期拆请求?
python·数据分析·pandas·量化交易·股票数据·quantdash
栈溢出了43 分钟前
LangGraph State 学习笔记
开发语言·人工智能·python
打工仔折腾 AI44 分钟前
从零写一个CAD 04:中键拖动平移,抓住一个点让它一直待在鼠标底下
人工智能·后端·python·性能优化·计算机外设·ai agent 实战
论文复现现场1 小时前
RTX 3090 24GB 适合科研吗?单卡论文复现、PyTorch 显存检查与 OOM 排错
人工智能·pytorch·python·深度学习·cuda·rtx3090
言乐61 小时前
Python根据关联词搜索模型
开发语言·人工智能·python·机器学习·django
泡海椒5 小时前
JQuick-Excel FORMAT 导出格式实战:日期、金额显示与 TRANSFORM 的边界
前端·python·excel