python - 对所用参数的 lambda 解释
问题描述
我想询问一些关于 lambda 参数的相当简单的事情。
我了解 lambda 的功能是如何工作的,但是当涉及到这一点时,我对哪个是哪个参数感到困惑。
例子:
from functools import reduce
# Simple example so that I could understand based on the explanation from experts
# here. You could modify as however you wish to explain it.
product = reduce(lambda x, y: x + y, [1,2,3,4])
这是一个较短的版本来比较它:
product = 0
for x in [1,2,3,4]:
product = product + x
print(product)
现在,我的问题是x
列表y
的变量还是 lambda 的第一个示例中的列表变量?x
或者的默认值是什么y
(判断其中一个属于产品?因为我没有为“lambda示例”初始化它的初始值,而只初始化了第二个示例。)
解决方案
和:
product = reduce(lambda x, y: x + y, [1, 2, 3, 4])
每次调用 lambda 函数时,x
参数都是运行总和(或累积值),并且y
将是 iterable 的连续元素[1, 2, 3, 4]
。
由于您没有指定可选的初始值设定项参数,因此值x
将设置为可迭代对象的第一个元素(1
在本例中),并且第一次调用lambda
with 以可迭代对象的第二个元素开始 - 否则x
将是作为初始值设定项传递的值和第一次调用将第一次将可迭代的第一个参数作为y
参数传递。
推荐阅读
- python - VS 代码 // 它没有显示我终端上的所有数据行
- python - 如何拆分键以获得每个键具有相同字典值的单独键值对?
- spring - SpringBoot 新手。尝试连接到 postgeSQL 数据源(学生数据库)
- reactjs - NGINX 子目录后面的 ReactJS
- java - 未从可执行 jar 加载的外部 log4j 配置文件
- google-bigquery - 从 BigQuery 中的 json 字符串中提取信息
- f# - 寻找有关使用标记值的分类更改问题的反馈
- java - JButton 更改其他按钮颜色,不包括单击的按钮
- javascript - 在 JavaScript 中将 2D 嵌套数组转换为 1D 数组?
- javascript - 在 map() 中反应 CSStransition 或 React-spring