用于查找子列表总和的 Python 程序
在本文中,我们将学习一个用于查找子列表总和的 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
结论
在本文中,我们学习了如何使用四种不同的方法找到子列表的总和,即给定起始和结束索引之间的总和。我们还学习了如何使用切片来获取列表的一部分。