python - 遍历对结果和下一个值进行操作的列表
问题描述
我有一个排序的对象列表
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])
如何在任意长度的列表中执行此操作?
解决方案
这正是reduce所做的:
from functools import reduce
def my_operation(total, value):
return total + value
print(reduce(my_operation, [1,2,3,4]))