python中的yield

本文通过解决一道LeetCode题目,深入浅出地解析了Python中yield关键字的作用及其背后的生成器概念。文章介绍了生成器相较于列表存储的优势,特别是在节省内存方面。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一直都搞不明白python中的yield是怎么一回事,今天在些这道leetcode题目的时候突然就恍然大悟了。

题目为叶子相似的树 - 叶子相似的树 - 力扣(LeetCode) (leetcode-cn.com)

参考的讲解链接如下:

如何理解Python中的yield用法? - 知乎 (zhihu.com)

Python生成器详解 (biancheng.net)

python中的生成器(generator)总结 - 周洋 - 博客园 (cnblogs.com)

明白了可迭代对象(Iterable)和迭代器(Iterator)以及生成器(generator)的概念。

生成器有哪些作用?

(1)如果想具体化数据的形式,通常会将数据存储在一个列表中。但这样做,列表的内容将占用有形内存。列表越大,占用的内存资源就越多。

(2)但是,如果数据集有某种逻辑,就不必存储在一个列表中,只需编写一个生成器,它将在需要时生成这些值,基本不占用内存。

 

相比迭代器,生成器最明显的优势就是节省内存空间,即它不会一次性生成所有的数据,而是什么时候需要,什么时候生成。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值