用于查找子列表总和的 Python 程序

pythonserver side programmingprogramming更新于 2024/1/4 13:14:00

在本文中,我们将学习一个用于查找子列表总和的 Python 程序。

使用的方法

以下是完成此任务的各种方法 -

  • 使用 For 循环(强力代码)

  • 使用累积总和方法

  • 使用 sum() 函数

  • 使用 math.fsum() 函数

使用 For 循环(强力代码)

算法(步骤)

以下是执行所需任务所要遵循的算法/步骤。 −

  • 创建一个变量来存储输入列表。

  • 创建两个单独的变量来存储起始和结束索引。

  • 将变量 resultSum 初始化为 0,用于存储子列表的结果总和。

  • 使用 for 循环,遍历从给定起始索引到结束索引的范围。

  • 将迭代器索引处的相应值添加到上面定义的 resultSum 变量(给定起始和结束索引的元素总和)

  • 打印子列表的结果总和(从起始到结束索引)。

示例

以下程序返回子列表的总和即使用 for 循环从给定的起始和结束索引中对元素求和 −

# 输入列表
inputList = [3, 5, 10, 5, 2, 3, 1, 20]
print("给定列表是:", inputList)
# 起始索引
start_index = 1
# 结束索引
end_index = 5
# 将变量初始化为 0,用于存储结果子列表总和
resultSum = 0
# 从给定的起始索引到结束索引遍历范围
for k in range(start_index, end_index+1):
    # 将迭代器索引处的相应值添加到 resultSum 变量
    resultSum += inputList[k]
# 打印子列表的结果总和(从起始到结束索引)
print("子列表的结果总和是:", resultSum)

输出

执行时,上述程序将生成以下输出 -

给定列表为:[3, 5, 10, 5, 2, 3, 1, 20]
子列表的结果总和为:25

使用累积总和方法

使用累积总和方法将先前元素的值添加到当前索引值中。

算法(步骤)

以下是执行所需任务所要遵循的算法/步骤。 −

  • 使用 for 循环,使用 len() 函数(返回对象中的项目数)循环直至输入列表的长度。

  • 如果当前索引为 0,则前一个索引处将没有元素,因此使用 continue 语句继续迭代。

  • 否则,将前一个元素的值添加到当前元素(累计总和)。

  • 使用 if 条件 语句检查给定的起始索引是否为 0。

  • 如果上述 if 条件为真,则打印输入列表给定结束索引处的元素。

  • 否则,打印给定结束索引处的元素与前一个起始索引处的元素的差异索引。

示例

以下程序使用累积和方法返回子列表的总和,即给定起始和终止索引的元素总和 -

# 输入列表
inputList = [3, 5, 10, 5, 2, 3, 1, 20]
print("给定列表是:", inputList)
# 起始索引
start_index = 1
# 终止索引
end_index = 5
# 循环直到输入列表的长度
for k in range(len(inputList)):
    # 如果索引为 0,即第一个元素,则继续(不执行任何操作)
    if(k == 0):
    	continue
    else:
        # 否则将前一个元素值添加到当前元素
        inputList[k] = inputList[k]+inputList[k-1]
    print("子列表的结果总和为:")
# 检查给定的起始索引是否为 0
if(start_index == 0):
   # 打印列表给定结束索引处的元素
      print(inputList[end_index])
else:
    # 否则,打印给定结束索引处元素的差异
    # 和起始索引处的前一个元素
      print(inputList[end_index]-inputList[start_index-1])

输出

给定列表为:[3, 5, 10, 5, 2, 3, 1, 20]
子列表的结果总和为:
25

使用 sum() 函数

算法(步骤)

以下是执行所需任务所要遵循的算法/步骤。 −

  • 使用切片获取从起始索引到结束索引的列表元素。

  • 使用 sum() 函数(返回任何可迭代对象中所有项目的总和)打印子列表的总和,即从给定的起始索引到结束索引的元素总和。

示例

以下程序使用 sum() 函数返回子列表的总和,即从给定的起始和结束索引的元素总和 −

# 输入列表
inputList = [3, 5, 10, 5, 2, 3, 1, 20]
print("给定的列表是:", inputList)
start_index = 1
end_index = 5
print("子列表的结果总和is:")
# 获取起始和结束索引之间的列表元素
resultList = inputList[start_index:end_index+1]
# 打印子列表的总和,即在 resultList 上方打印 sum
print(sum(resultList))

输出

给定列表为:[3, 5, 10, 5, 2, 3, 1, 20]
子列表的结果总和为:
25

使用 math.fsum() 函数

fsum() 是 math 模块中的特殊函数之一。然后可以使用 fsum() 函数计算子列表的总和。

python 中的 math.fsum() 函数返回任何可迭代对象(如元组、数组、列表等)中所有项的总和。

示例

以下程序使用 math.fsum() 函数返回子列表的总和,即给定起始和结束索引中的元素总和 −

# 导入数学模块
import math
# 输入列表
inputList = [3, 5, 10, 5, 2, 3, 1, 20]
# 起始索引
start_index = 1
# 结束索引
end_index = 5
print("给定列表为:[3, 5, 10, 5, 2, 3, 1, 20]")
print("子列表的结果和为:")
# 获取起始和结束索引之间的列表元素
resultList = inputList[start_index:end_index+1]
# 打印子列表的总和,即打印上述 resultList 总和
print(math.fsum(resultList))

输出

给定列表为:[3, 5, 10, 5, 2, 3, 1, 20]
子列表的结果总和为:
25.0

结论

在本文中,我们学习了如何使用四种不同的方法找到子列表的总和,即给定起始和结束索引之间的总和。我们还学习了如何使用切片来获取列表的一部分。


相关文章