Python 函数 - 返回生成器如果函数要返回一系列结果,我们常见的方法就是将结果放到一份列表中,然后返回给调用者 。比如下面的函数,返回字符串中每个单词的首字母在真个字符串中的索引:
运行结果:
上述的结果完全符合我们的预期 , 但get_word_index函数不够简洁 。下面我们尝试使用生成器来实现:
运行结果:
改写之后,不仅运行结果符合要求 , 由于不需要和result列表交互,函数也变得非常简洁 。下面我们就来详细学习下生成器吧~
生成器是指使用yield表达式的函数,调用生成器函数时 , 它并不会真的运行,而是会返回迭代器 。每次在这个迭代器上面调用内置的next函数时,迭代器就会把生成器推进到下一个yield表达式那里 。生成器传给yield的值均会由迭代器返回给调用者 。
此外,如果输入量非常大,使用列表作为返回值,那么程序就有可能耗尽内存并崩溃 。相反,使用生成器之后,则可以应对任意长度的输入数据 。
例如,下面这个生成器函数可以获取文件中单词的索引,而不管文件内容多大 , 该函数执行时消耗的内存,只由单行的文本长度决定:
其中 test_generator.txt 中的内容如下:
运行结果:
下面这句话特别重要: 生成器函数返回的迭代器,是由状态的,及调用者不应该反复使用它。我们那word_index_iter来说明:
如果想重复调用 , 请将其封装成容器:
运行结果:
关于上述自定义容器的实现原理,我的另外一篇文章做了详细介绍,链接奉上:
python函数的返回值?题主你好,
关键点在于函数如果没有明确使用return关键字指定函数的返回值,则默认返回值是none.
-----
所以temp = hello()这句的理解就是: 执行hello()这个函数, 并且把函数的返回值赋给变量temp, 但hello()函数中没有return语句, 所以hello()函数的返回值为默认的none.
【python函数返回 Python函数返回两个值】-----
题主还可以在hello()函数最后加一个: return 123
然后再行一下看看,就明白了.
=====
希望可以帮到题主, 欢迎追问.
python补充函数fun求出n!并将结果返回主函数下面是 Python 中一个函数的示例,该函数计算给定数字的阶乘并返回结果:n
要使用此函数,您可以从 main 函数调用它,并将 的值作为参数传入 。例如:n
此代码将打印 5 的阶乘,即 120 。
关于python函数返回和Python函数返回两个值的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。
推荐阅读
- 两个微信一个视频号,两个微信号一个视频另一个能收到
- css中图片加边框和水印,css图片边框有哪些样式
- 仁和幼儿园公众号关注,机关幼儿园公众号
- 在手机u盘上怎么添加文件,u盘在手机上怎么弄
- php自带的数据排序 php自带的数据排序方法
- 关于手机后台频繁启动怎么关闭的信息
- 董明珠什么时候还会直播,董明珠什么时候开始创业
- 抖音如何发营销,抖音如何发营销广告
- java商城拍卖源代码 如何用java实现竞拍功能