在下面的代码中,我希望在for循环中添加list=(0,3)、(2,6)、(1,10)的第二个参数。第一次迭代应该是3+6=9,第二次迭代应该添加前一次迭代的输出,即9到10-> 9+10=19,我想要最终的输出S=9,19。我不知道怎么做,我应该在代码中添加另一个循环吗?
T=[(0,3),(2,6),(1,10)]
S=[]
for i in range(len(T)):
    b=T[0][i]+T[0][i+1]
    S.append(b)发布于 2020-10-02 06:18:30
这里有一个带有本机递归的解决方案
import operator
mylist =[(0,3),(2,6),(1,10)]
def accumulate(L, i, op):
  def iter(result, rest, out):
    if rest == []:
      return out
    else:
      r = op(result, rest[0][i-1])
      return iter(r, rest[1:], out + [r])
  return iter(L[0][i-1], L[1:], [])
print(accumulate(mylist, 2, operator.add))
print(accumulate(mylist, 1, operator.add))
print(accumulate(mylist, 2, operator.mul))
# ==>
# [9, 19]
# [2, 3]
# [18, 180]https://stackoverflow.com/questions/64166369
复制相似问题