2017-09-13 32 views
-1
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_sumlast_sum的总和,并将其存储在新的B名单与指数相同。像下面增加两个之和(),例如SUM()+ SUM(),并将其存储新的列表的返回值

b[i] = start_sum + last_sum 

这如何实现这一点。我是Python的新手。任何帮助都会很棒。

+0

'对于我在范围(0,n)':n应该是'len(a)'。你可能第二次输入了更少的数字。请提供非互动[mcve];顺便说一句'分裂()'你的总和也不会工作... –

+0

你不能只在for循环之前创建2个空列表,然后你可以附加结果。这样,您可以将start_sum和las_sum保存到2个不同的列表中 –

+0

请修改您的帖子以包含错误的全文,包括回溯。 –

回答

0

一种解决方案可能是:

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将失败。

0

第i个值将在第一个i值和最后一个n-i值中。其余的值将只在一组中。所以如果你想要相同的功能,你可以这样做:

a_sum = sum(a) 
b = [x+a_sum for x in a]