gpt4 book ai didi

python - 我需要帮助了解 python 中的 map 功能

转载 作者:行者123 更新时间:2023-12-01 09:30:16 25 4
gpt4 key购买 nike

def multiply(x):
return (x*x)
def add(x):
return (x+x)

funcs = [multiply, add]
for i in range(5):
value = list(map(lambda x: x(i), funcs))
print(value)

所以我理解映射用于将函数/第一个参数应用于列表/第二个参数中的每个项目。我不明白的是它是如何在这个函数列表上处理的。

输出:

[0, 0]

[1, 2]

[4, 4]

[9, 6]

[16, 8]

最佳答案

让我们尝试将其从循环中拉出来,看看会发生什么。

您的lambda x: x(i)正在使用参数i调用每个函数,并且map(大致)将其转换为列表。

list(map(lambda x: x(0), funcs)) -> [0,0]

这相当于:[multiply(0), add(0)]

如果我们再试一次 1:

list(map(lambda x: x(0), funcs)) -> [1,2]

这相当于:[multiply(1), add(1)]

您正在应用的函数(map 的第一个参数)是您的 lambda。这恰好是一个返回其输入结果的高阶函数。

重写此程序的类似方法是:

def multiply_and_add(i):
return [multiply(i), add(i)]

result = map(multiply_and_add, range(5))

for value in result
print(value)

关于python - 我需要帮助了解 python 中的 map 功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50029585/

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