Python 增量子列表求和
在增量子列表求和中,给定一个包含一些整数元素的列表,并允许通过某些特定的条件和迭代来添加前一个元素。在Python中,我们有一些内置函数,比如accumulate()、cumsum()和tolist(),可以用来解决增量子列表求和的问题。
让我们举个例子。
给定列表为:[10, 20, 30, 40, 50]
10:第0个索引
10 + 20 = 30:第1个索引
10 + 20 + 30 = 60:第2个索引
10 + 20 + 30 + 40 = 100:第3个索引
10 + 20 + 30 + 40 + 50 = 150:第4个索引
因此,最终的结果变为[10, 30, 60, 100, 150]
语法
示例中使用了以下语法-
sum()
sum()是Python中的内置函数,它允许对可迭代对象中的值进行相加。
range()
range()是Python中的内置函数,根据给定的范围返回数字序列。
len()
len() 是 Python 中的一个内置函数,用于返回结果的长度。
accumulate()
accumulate()是Python中的一个内置函数,它返回给定列表中可迭代元素的累加结果。
cumsum()
cumsum() 是 Python 中的一个内建函数,遵循 numpy 模块,在给定列表的可迭代元素上执行累积求和。这个函数在 Python 数据帧中经常用于计算每行的累积总和。
tolist()
tolist()是Python中的一个内置函数,它返回一系列列表。
使用循环
在下面的示例中,程序使用一个递归函数来调用自身。然后使用空列表result来存储程序的最终输出,该列表将在函数返回时使用。接下来,将current_sum的初始值设为0,该值将用于设置第一个索引元素。然后使用for循环,通过使用+=和append()计算递增的子列表和来迭代输入列表。最后,使用函数返回获取结果。
示例
def Inc_sublist_sum(lst):
result = []
current_sum = 0
for num in lst:
current_sum += num
result.append(current_sum)
return result
lst = [100, 50, 120, 60, 30, 40]
increment_sum = Inc_sublist_sum(lst)
print(increment_sum)
输出
[100, 150, 270, 330, 360, 400]
使用列表推导式
在下面的示例中,将使用列表推导式,其中内置函数sum()设置切片符号来计算递增子列表的和。使用for循环遍历列表的长度并返回结果。
示例
def Inc_sublist_sum(lst):
return [sum(lst[:i+1]) for i in range(len(lst))]
# Create the list
lst = [78, 10, 88, 20]
increment_sum = Inc_sublist_sum(lst)
print(increment_sum)
输出
[78, 88, 176, 196]
使用itertools的accumulate
在下面的示例中,我们将从定义库itertools开始,并导入accumulate模块。然后,它将使用递归函数来提供Python内置的accumulate()函数,该函数会自动添加到可迭代元素中,并使用list()返回程序的输出。
示例
from itertools import accumulate
# recursive function
def Inc_sublist_sum(lst):
return list(accumulate(lst))
# create the list
lst = [23, 43, 10]
# calling function
res = Inc_sublist_sum(lst)
print(res)
输出
[23, 66, 76]
使用Numpy
在下面的示例中,我们将通过导入名为numpy的模块,并将对象引用命名为np来启动程序。然后,它将使用递归函数,其中设置了内置函数cumsum()和tolist()来计算递增子列表和并返回结果。
示例
import numpy as np
# Recursive function
def Inc_sublist_sum(lst):
return np.cumsum(lst).tolist()
# Create the list
lst = [11, 21, 31, 41, 51]
increment_sum = Inc_sublist_sum(lst)
print(increment_sum)
输出
[11, 32, 63, 104, 155]
结论
以上所有示例都代表了增量子列表求和,其中使用了一些内建的可迭代函数,如accumulate()、sum()、cumsum()和tolist()。理解这个示例最好的方法是使用简单的+=运算符,它有助于将列表的可迭代元素相加。