首页 > 解决方案 > 如何在没有 for 循环的情况下在 python 列表/数组上迭代地执行操作?

问题描述

是否可以对列表的前两个元素执行以下操作,存储结果,然后对列表中的所有项目的前一个结果和列表中的下一个项目执行下一个操作,而无需 for 循环?这里 F(x) 是一个任意定义的函数。这是带有 for 循环的工作代码:

list   = [a,b,c,d,e,f,g,h]
result = F(a,b)

for i in range(2,len(list)):
    result = F(result,list[i])

print(result)

非常感谢您,最好的答案是煎饼。

标签: pythonarrayslistiteration

解决方案


是的,这是减少

from functools import reduce

result = reduce(F, list)

reduceresult将函数与列表的每个元素一起应用于累加器 ( )。但是,在第一次迭代中,如果您没有指定初始累加器,它将使用初始元素作为累加器。


推荐阅读