Python|前缀和列表
如今,特别是在竞争性编程领域,计算前缀和的实用性非常流行,并且在许多问题中都有所体现。因此,对它有一个单一的解决方案将有很大的帮助。让我们讨论一下可以解决这个问题的某种方法。
方法 #1:使用列表推导 + sum() + 列表切片
这个问题可以通过上述两个函数的组合来解决,其中我们使用列表推导将逻辑扩展到每个元素,sum函数得到总和,切片用于得到总和直到特定索引。
# Python3 code to demonstrate
# prefix sum list
# using list comprehension + sum() + list slicing
# initializing list
test_list = [3, 4, 1, 7, 9, 1]
# printing original list
print("The original list : " + str(test_list))
# using list comprehension + sum() + list slicing
# prefix sum list
res = [sum(test_list[ : i + 1]) for i in range(len(test_list))]
# print result
print("The prefix sum list is : " + str(res))
输出 :
The original list : [3, 4, 1, 7, 9, 1]
The prefix sum list is : [3, 7, 8, 15, 24, 25]
方法#2:使用accumulate(iterable)
方法。
# function to find cumulative sum of list
from itertools import accumulate
def cumulativeSum(lst):
print (list(accumulate(lst)))
# Driver program
if __name__ == "__main__":
lst = [3, 4, 1, 7, 9, 1]
cumulativeSum(lst)
输出:
[3, 7, 8, 15, 24, 25]