我知道Python的map
和zip
可以同时遍历多个列表;通过zip
,我们可以得到循环中所有列表参数的i-th
元素。但我想知道Python是否有其他方便的函数来处理更复杂的情况。你知道吗
例如,下面的程序模拟了一个场景,在这个场景中,我们有一个初始值,并一起迭代两个列表。它就像一个有信用和借记的银行账户。你知道吗
a0 = [6, 6, 6, 6, 6]
a1 = [1, 1, 1, 1, 1]
init = 100
def f(x, e0, e1):
return x + e0 - e1
def myIterFold(f, init, a0, a1):
e_0 = f(init, a0[0], a1[0])
result = [e_0]
for i in range(1, len(a0)):
e_i = f(result[i-1], a0[i], a1[i])
result.append(e_i)
return result
print(myIterFold(f, init, a0, a1)) # [105, 110, 115, 120, 125]
上面的代码使用索引循环1)实现一种折叠,2)并返回一个列表,其中包含中间结果(而不仅仅是最终结果)。有人知道Python有没有快速的函数或方法来重写这些代码吗?你知道吗
PS:我问这个问题,因为我想看看Python如何实现/模拟这个任务,这是Excel中常见且简单的模式:
我不确定你是否在找这个,但我猜你可以用
itertools.accumulate
:相关问题 更多 >
编程相关推荐