遍历多个列表的相应元素

loop over corresponding elements of multiple lists

我有一个需要两个输入的函数。我想向它传递两个输入列表和 return 一个将函数依次应用于相应输入的列表。在 Python 中执行此操作的最佳做​​法是什么?我正在从 R 过渡,在那里我会使用 mapply 函数。

def myfunc(x, y):
    return x + y
res = [myfunc(i, j) for i in [1, 2, 3] for j in [1, 2, 3]] 
# Code above returns all combinations (which I don't need).
# Desired result: [2, 4, 6]

尝试使用:

res = [myfunc(x, y) for x, y in zip([1, 2, 3], [1, 2, 3])]

或者对于未知数量的迭代器,执行:

res = [myfunc(*i) for i in zip([1, 2, 3], [1, 2, 3])]
import numpy as np
a = np.array([1, 2, 3])
b = np.array([1, 2, 3])

def myfunc(x, y):
    return x + y

sum = np.vectorize(myfunc)(a,b)
print(sum)
#[2,4,6]

map 函数适用于此,因为它允许传递多个可迭代对象。

def my_func(x, y):
    return x + y

xs = (1, 2, 3)
result = list(map(my_func, xs, xs))