gpt4 book ai didi

python - 定义带有两个参数的 lambda 函数

转载 作者:行者123 更新时间:2023-11-28 19:44:04 24 4
gpt4 key购买 nike

我有一些代码如下所示。

import math
square_root = lambda x: math.sqrt(x)
list = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16]
map(square_root,list)

输出:

[1.0,
1.4142135623730951,
1.7320508075688772,
2.0,
2.23606797749979,
2.449489742783178,
2.6457513110645907,
2.8284271247461903,
3.0,
3.1622776601683795,
3.3166247903554,
3.4641016151377544,
3.605551275463989,
3.7416573867739413,
3.872983346207417,
4.0]

现在我想使用 power 而不是 square_root

import math
power = lambda x: math.power(x,n)
list = [1,2,3,4,5]
map(power,list,2)

我得到以下错误?如何在 map 中使用两个参数?

TypeError Traceback(最后一次调用)/home/AD/karthik.sharma/ws_karthik/trunk/在 ()----> 1 张 map (power,list,2)

类型错误:map() 的参数 3 必须支持迭代

最佳答案

一种方法如下:

power = lambda x, n: math.pow(x,n)
list = [1,2,3,4,5]
map(power,list,[2]*len(list))

表达式 [2]*len(list) 创建另一个与现有列表长度相同的列表,其中每个元素包含值 2。map 函数采用每个输入列表中的一个元素,并将其应用于您的 power 函数。

另一种方式是:

power = lambda x, n: math.pow(x,n)
list = [1,2,3,4,5]
map(lambda x: power(x, 2),list)

它使用部分应用程序创建第二个 lambda 函数,该函数仅接受一个参数并将其提高到 2 的幂。

请注意,您应该避免使用名称 list 作为变量,因为它是内置 Python list 类型的名称。

关于python - 定义带有两个参数的 lambda 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23643348/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com