应用具有输入等列表的函数

我想从其他列表(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]


慕妹3146593
浏览 170回答 3
3回答

慕的地8271018

您可以使用以下map功能轻松完成此操作:V = list(map(mag, a, b, c))

慕村225694

您想首先压缩参数,然后将函数映射到解压缩的元组上:from itertools import starmapstarmap(mag, zip(a,b,c))

皈依舞

只使用内置函数怎么样?像拉链>>> [mag(a_, b_, c_) for a_,b_,c_ in zip(a, b, c)][10, 78, 30]加上另一个 python 内置函数,map返回一个迭代器,从而使事情变得更快并最终节省内存:>>> gen = map(lambda uple:mag(*uple), zip(a, b, c))>>> list(gen)[10, 78, 30]
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python