在列表上迭代函数
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)
我有一个列表,其中的项目总数可能会发生变化。我想应用一个函数,该函数需要对列表中的前两项进行两个输入,结果我想对列表中的第三项应用相同的函数,结果我想对第四项应用函数,依此类推。 ..
当您知道列表中的项目数时,是否有更好的方法来执行以下操作
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)