增加两个之和(),例如SUM()+ SUM(),并将其存储新的列表的返回值
问题描述:
a = map(int, raw_input().split())
n = len(a)
for i in range(0, n):
start_sum = sum(a[0:i+1]) # to calculate sum of first i
last_sum = sum(a[-(n-i):]) # to calculate sum of last n-i
现在我已经存储start_sum和last_sum的总和,并将其存储在新的B名单与指数相同我。像下面增加两个之和(),例如SUM()+ SUM(),并将其存储新的列表的返回值
b[i] = start_sum + last_sum
这如何实现这一点。我是Python的新手。任何帮助都会很棒。
答
一种解决方案可能是:
a = map(int, raw_input().split())
b = []
for i in range(0, n):
start_sum = sum(a[0:i+1]) # to calculate sum of first i
last_sum = sum(a[-(n-i):]) # to calculate sum of last n-i
b.append(start_sum + last_sum)
其他的解决方案是可能的... 你有问题,是B还没有被创建为与n位名单,所以把一些在地方i
将失败。
答
第i个值将在第一个i值和最后一个n-i值中。其余的值将只在一组中。所以如果你想要相同的功能,你可以这样做:
a_sum = sum(a)
b = [x+a_sum for x in a]
'对于我在范围(0,n)':n应该是'len(a)'。你可能第二次输入了更少的数字。请提供非互动[mcve];顺便说一句'分裂()'你的总和也不会工作... –
你不能只在for循环之前创建2个空列表,然后你可以附加结果。这样,您可以将start_sum和las_sum保存到2个不同的列表中 –
请修改您的帖子以包含错误的全文,包括回溯。 –