循环遍历结果和下一个值

问题描述 投票:0回答:1

我有一个排序的对象列表

l = sorted(['/path/to/1.obj', '/path/to/2.obj', '/path/to/3.obj', '/path/to/4.obj'])

我想遍历对象,对它们执行操作,并使用结果执行下一个操作。

例如

result1 = my_operation(l[0], l[1])
result2 = my_operation(result1, l[2])
resultFinal = my_operation(result2, l[3])

如何在任意长度的列表中执行此操作?

python python-3.x wordpress
1个回答
1
投票

这正是reduce的作用:

from functools import reduce

def my_operation(total, value):
    return total + value

print(reduce(my_operation, [1,2,3,4]))

0
投票

您正在寻找的概念是一个循环:

def op(a,b):
    return a*b

l = [1, 2, 4, 7, 12, 92]

k = op(*l[:2]) 
print(k)

for item in l[2:]:
    k = op(k, item)
    print(k)

输出:

2           # 1 * 2
8           #       * 4
56          #            * 7
672         #                * 12
61824       #                     * 92   

请确保您的列表中至少包含2个元素,并且应该没问题。

© www.soinside.com 2019 - 2024. All rights reserved.