在列表上迭代函数

Iterate function over a list

我有一个列表,其中的项目总数可能会发生变化。我想应用一个函数,该函数需要对列表中的前两项进行两个输入,结果我想对列表中的第三项应用相同的函数,结果我想对第四项应用函数,依此类推。 ..

当您知道列表中的项目数时,是否有更好的方法来执行以下操作

for x,y,a,b,c...n in result:
    z=np.convolve(x,y)
    z=np.convolve(z,a)
    z=np.convolve(z,b)
    z=np.convolve(z,c)
    .
    .
    .
    final=np.convolve(z,n)
print(final)

你可以这样做:

for args in result:
    x, y, *others = args
    z = np.convolve(x,y)

    for a in others:
        z = np.convolve(z,a)

你想做的事情叫做reduce-function。 Python has them.

对于你的情况,你可以这样使用它们:

from functools import reduce

reduce(lambda x, y: np.convolve(x, y), result)