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()。理解此示例的最佳方法是使用简单的 += 运算符,它有助于添加列表的可迭代元素。

更新于: 2023-08-14

149 次查看

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告

© . All rights reserved.