# How to update list recursively

• A+
Category：Languages

I have a list of dicts:

``a = [{'one': 1}, {'two': 2}, {'three': 3}, {'four': 4}, {'five': 5}] ``

I want to update the value of each element in this list by the sum of all remainders. (so `'one'` will get the value `2+3+4+5`) .

so that it will look like this:

``a = [{'one': 14}, {'two': 12}, {'three': 9}, {'four': 5}, {'five': 5}] ``

`'five'` is the last, so it will not update .

Im not sure how to achieve this. Im thinking that you construct a function that will call itself recursivly something like:

``def recursive(a):    if len(a) == 1:       return list(a.values())     else:       val = list(a.values())       return val + recursive(a.pop(0)) ``

But Im not sure to do this `list(a.values())` is the "best" way. And this is also getting a `KeyError: 0`.

Any ideas?

Iterative and in place solution

``a = [{'one': 1}, {'two': 2}, {'three': 3}, {'four': 4}, {'five': 5}] sum_so_far = 0 first_flag = False for i in a[::-1]:     k,v = i.items()   #For Python 3 k,v = list(i.items())     sum_so_far += v     if first_flag:         i[k] = sum_so_far # do not change the value at first      first_flag=True ``

Output

``[{'one': 15}, {'two': 14}, {'three': 12}, {'four': 9}, {'five': 5}] ``