首页 > 解决方案 > 我应该如何创建变量 x 以便我可以输出值 (1,2), f(2,2), f(3,2), f(4,2),...,f(10,2) ?

问题描述

给定以下 lambda 函数,

f = lambda x,y: x**2 + y**2

我应该如何创建变量 x 以便我可以输出值

f(1,2), f(2,2), f(3,2), f(4,2),...,f(10,2)?

我试过了

a = [ (b,2) for b in range(1,11)]
f(a)

它给出了错误 lambda() 缺少 1 个必需的位置参数:'y'。

我也试过

f = lambda x,y: x**2 + y**2
a = [(i,2) for i in np.linspace(1, 10, 10)]
for j in a:
    f(j)

它给出了相同的错误 lambda() 缺少 1 个必需的位置参数:'y'。

我们应该怎么做?

标签: pythonfunctiondata-structureslambda

解决方案


你的 lambda 函数接受 2 个参数,你给它一个元组列表。使用 for 循环和 * 运算符,您可以执行以下操作:

for tuple_ in a:
    print(f(*tuple_))

"*" 操作符在此处被称为解包操作符unpacking pep


推荐阅读