"使用列表作为输入应用函数"

2024-04-24 14:26:52 发布

您现在位置:Python中文网/ 问答频道 /正文

我想从其他列表(a,b,c)创建一个新的列表(V)并使用一个函数,但是我想利用python并将函数应用于三个列表,而不是逐个元素。你知道吗

例如,我有a、b和c列表;应用函数后的结果应该是V。谢谢。你知道吗

def mag(a, b, c):
    # something sophisticated
    return (a+b)*c

a = [1, 5, 7]
b = [4, 8, 3] 
c = [2, 6, 3]
V = [10, 78, 30]

Tags: 函数元素利用列表returndefsomethingmag
3条回答

您可以使用map函数轻松地完成此操作:

V = list(map(mag, a, b, c))

首先压缩参数,然后将函数映射到解包元组:

from itertools import starmap

starmap(mag, zip(a,b,c))

有关示例,请参见here。你知道吗

另一种解决方案是使用maplambda

In [16]: list(map(lambda p: mag(*p), zip(a, b, c)))
Out[16]: [10, 78, 30]

相关问题 更多 >