📜  Python|前缀和列表

📅  最后修改于: 2022-05-13 01:55:26.510000             🧑  作者: Mango

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]