Python程序 寻找子列表之和
在这篇文章中,我们将学习一个Python程序来寻找一个子列表的总和。
使用的方法
以下是完成这项任务的各种方法
- 使用For Loop(Brute Code)
-
使用累积和法
-
使用sum()函数
-
使用math.fsum()函数
使用For Loop(暴力代码)
算法(步骤)
以下是执行所需任务时需要遵循的算法/步骤。-
- 创建一个变量来存储输入列表。
-
创建两个单独的变量来存储开始和结束的指数。
-
将变量 resultSum 初始化为 0 ,用于存储子列表的结果和。
-
使用 for循环, 遍历从给定的开始索引到结束索引的范围。
-
将迭代器索引处的相应值添加到上述定义的 resultSum 变量中(从给定的开始和结束索引的元素之和)。
-
打印子列表的结果之和(从开始索引到结束索引)。
例子
下面的程序使用for循环返回子列表的总和,即从给定的开始和结束索引开始的元素的总和。
# input list
inputList = [3, 5, 10, 5, 2, 3, 1, 20]
print("The Given List is:", inputList)
# starting index
start_index = 1
# ending index
end_index = 5
# initializing a variable to 0 for storing the resultant sublist sum
resultSum = 0
# traversing in the range from the given start index to the end index
for k in range(start_index, end_index+1):
# adding corresponding value at the iterator index to the resultSum variable
resultSum += inputList[k]
# Printing the resultant sum of sublist(from start to end index)
print("The resultant sum of sublist is:", resultSum)
输出
在执行过程中,上述程序将产生以下输出
The Given List is: [3, 5, 10, 5, 2, 3, 1, 20]
The resultant sum of sublist is: 25
使用累积和法
使用 累积总和 法,将以前的元素值加到当前的指数值上。
算法(步骤)
以下是执行所需任务时需要遵循的算法/步骤。-
- 使用 for循环, 用 len()函数 循环到输入列表的长度(返回一个对象中的项目数)。
-
如果当前索引是0,那么在前一个索引处就没有任何元素,所以用continue语句继续迭代。
-
否则将前一个元素的值加入到当前元素中(Cummulative Sum)。
-
使用 if条件 语句来检查给定的起始索引是否为0。
-
如果上述if条件为真,则打印输入列表中给定结束索引处的元素。
-
否则,打印给定的结束索引的元素与开始索引的前一个元素的 差 。
例子
下面的程序使用累积和法返回子列表的总和,即从给定的开始和结束索引的元素的总和。
# input list
inputList = [3, 5, 10, 5, 2, 3, 1, 20]
print("The Given List is:", inputList)
# starting index
start_index = 1
# ending index
end_index = 5
# looping till the length of the input list
for k in range(len(inputList)):
# If it the index is 0 i.e first element then continue(do nothing)
if(k == 0):
continue
else:
# Else add the previous element value to the current element
inputList[k] = inputList[k]+inputList[k-1]
print("The resultant sum of sublist is:")
# checking whether the given starting index is 0
if(start_index == 0):
# printing the element at the given end index of the list
print(inputList[end_index])
else:
# Else printing the difference of elements at the given end index
# and previous of start index
print(inputList[end_index]-inputList[start_index-1])
输出
The Given List is: [3, 5, 10, 5, 2, 3, 1, 20]
The resultant sum of sublist is:
25
使用sum()函数
算法(步骤)
以下是执行所需任务时需要遵循的算法/步骤。-
- 使用切分法从起始索引到结束索引获取列表元素。
-
使用sum()函数(返回任何迭代器中所有项目的总和)来打印子列表的总和,即从给定的开始索引到结束索引的元素的总和。
例子
下面的程序使用sum()函数返回子列表的总和,即从给定的开始索引到结束索引的元素之和。
# input list
inputList = [3, 5, 10, 5, 2, 3, 1, 20]
print("The Given List is:", inputList)
start_index = 1
end_index = 5
print("The resultant sum of sublist is:")
# Getting the list elements between start and end indices
resultList = inputList[start_index:end_index+1]
# Printing the sum of the sublist i.e printing above resultList sum
print(sum(resultList))
输出
The Given List is: [3, 5, 10, 5, 2, 3, 1, 20]
The resultant sum of sublist is:
25
使用math.fsum()函数
fsum()是数学模块中的一个特殊函数。然后可以使用 fsum() 函数来计算子列表的总和。
python中的 math.fsum() 函数返回任何可迭代的项的总和,如图元组、数组、列表等。
例子
下面的程序使用 math.fsum() 函数返回子列表的总和,即从给定的开始和结束索引的元素的总和。
# importing math module
import math
# input list
inputList = [3, 5, 10, 5, 2, 3, 1, 20]
# starting index
start_index = 1
# ending index
end_index = 5
print("The Given List is: [3, 5, 10, 5, 2, 3, 1, 20]")
print("The resultant sum of sublist is:")
# Getting the list elements between start and end indices
resultList = inputList[start_index:end_index+1]
# Printing the sum of the sublist i.e printing above resultList sum
print(math.fsum(resultList))
输出
The Given List is: [3, 5, 10, 5, 2, 3, 1, 20]
The resultant sum of sublist is:
25.0
总结
在这篇文章中,我们学习了如何使用四种不同的方法找到子列表的总和,即给定的开始和结束索引之间的总和。我们还学习了如何使用切分法来获得列表的一部分。