You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python Lambda函数如何传递多个值或*args可变参数?

实现逻辑

Python中lambda表达式和def定义的普通函数遵循完全一致的参数规则,不需要额外引入工具或做特殊语法改造,直接使用Python原生的可变位置参数语法即可实现多值传入:在参数前加*做标识,所有传入的位置参数会自动打包为元组传入函数体,只需在函数体内遍历该元组完成目标计算即可。
这种写法完全兼容原有单参数调用逻辑,旧的调用代码无需修改。

具体解决方案

以你最初的「计算输入值平方」逻辑为例,如果需要对每个传入的参数分别求平方、返回结果序列,实现代码如下:

# *nums 接收任意数量的位置参数,自动打包为元组
a = lambda *nums: tuple(x ** 2 for x in nums)

# 多参数形式调用
print(a(2, 3, 4, 5))

运行输出:

(4, 9, 16, 25)

如果需要实现其他计算逻辑,比如计算所有传入值的平方和,只需要调整函数体内的计算规则即可:

a = lambda *nums: sum(x ** 2 for x in nums)
print(a(2, 3, 4, 5))
# 输出: 54
  • 可变参数不限制传入参数的个数,传入单个值时行为和你最初写的单参lambda完全一致,a(2)依然会返回4
  • 不需要手动把参数包成列表、字典再传入,直接用*可变参数语法是性能最高、写法最简洁的实现方式

内容的提问来源于stack exchange,提问作者Prince

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.30 02:54:20