Python减少相反的事情:通过在先前返回的值上调用函数来生成值
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Python减少相反的事情:通过在先前返回的值上调用函数来生成值,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含945字,纯文字阅读大概需要2分钟。
内容图文
我想知道Python(2.7)中是否存在与reduce函数相反的东西.我知道reduce工作如下:
reduce( lambda x,y : x+y, [1,2,3,4,5]) == 15.
它使用第一个参数和第二个参数,并从第一个参数调用函数,然后获取结果和列表中的下一个项目,然后再次调用该函数.
我想做相反的事情-从一个元素生成列表.可能是这样的:
reduce_opposite( lambda x: x**2, 3, n_times=3) == [(3 ** 2), (9 ** 2), (81 ** 2)]
带有函数,初始参数和n并将该初始参数作为函数输入的东西.然后将结果存储在列表中,并再次调用函数,但具有先前调用的结果.
Python中有类似的东西吗?如果不是…只是出于好奇,任何语言都存在这样的内容吗?你怎么称呼它?我正在寻找很短的东西.我可以编写自己的复杂函数来做到这一点.
解决方法:
据我所知,没有内置函数可以执行此操作,但是编写一个生成器(或类似的东西)来执行相同的技巧非常简单.例如:
def reduce_opposite(fn, start, n_times=3):
for _ in range(n_times):
start = fn(start)
yield start
然后:
>>> list(reduce_opposite(lambda x: x**2, 3, n_times=3))
[9, 81, 6561]
生成器在调用之间保留其局部变量这一事实使得这成为可能.
内容总结
以上是互联网集市为您收集整理的Python减少相反的事情:通过在先前返回的值上调用函数来生成值全部内容,希望文章能够帮你解决Python减少相反的事情:通过在先前返回的值上调用函数来生成值所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。