我想從其他列表(a、b、c)創建一個新列表(V)并使用一個函數,但我想利用 python 并將該函數應用于三個列表而不是逐個元素。例如,我有列表 a、b 和 c;應用函數后的結果應該是V。謝謝。def mag(a, b, c): # something sophisticated return (a+b)*ca = [1, 5, 7]b = [4, 8, 3] c = [2, 6, 3]V = [10, 78, 30]
3 回答

慕村225694
TA貢獻1880條經驗 獲得超4個贊
您想首先壓縮參數,然后將函數映射到解壓縮的元組上:
from itertools import starmap
starmap(mag, zip(a,b,c))

皈依舞
TA貢獻1851條經驗 獲得超3個贊
只使用內置函數怎么樣?像拉鏈
>>> [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]
添加回答
舉報
0/150
提交
取消