Итерировать функцию по списку - PullRequest
0 голосов
/ 07 мая 2019

У меня есть список, в котором может измениться общее количество предметов.Я хочу применить функцию, которая требует двух входных данных для первых двух элементов в списке, и в результате я хочу применить ту же функцию к третьему элементу в списке, а в результате я хочу применить функцию для четвертого и так далее...

Есть ли лучший способ сделать следующее, когда вы знаете количество элементов в списке

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)

Ответы [ 2 ]

2 голосов
/ 07 мая 2019

То, что вы хотите сделать, называется редукторной функцией. Python имеет их .

Для вашего случая вы можете использовать их так:

from functools import reduce

reduce(lambda x, y: np.convolve(x, y), result)
0 голосов
/ 07 мая 2019

Вы можете сделать это:

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

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