Suppose i have list of numbers [3, 51, 34]
. I want to add to each element the sum of the previous elements and return a new list with these new values.
So here the result would be [3, 54, 88]
. How to do it in general on an arbitrary-sized input list? The last line of this code should work on the known size lists.
indices1 = range(len(list1))
indices1.sort(key=lambda x: list2[x])
list1 = map(lambda i: list1[i], indices1)
labelled = zip(list1, ascii_uppercase)
sorted_data = sorted(labelled, key=itemgetter(0))
labels = [pair[1] for pair in sorted_data]
newlist, = [ 0, list1[0], list1[1] + list1[2], list1[0] + list[1] + list[2]]
a simple reduce:
nums = [3,51,34]
reduce(lambda x, y: [y] if not x else x + [y + x[-1]], nums, None)
# [3, 54, 88]