2012-10-28 80 views
0

可能重複:
Merging/adding lists in Python增加值

nested_list= [[1, 3, 5], [3, 4, 5]] 
sum_of_items_in_nested_list = [4, 7, 10] 

我想創建一個嵌套的循環,將增加採取項目每個對應指數和將其添加到同一索引處的其他嵌套列表。所以上面加了 nested_list[0][0] + nested_list[1][0],nested_list[0][1] + nested_list[1][1]等等。我想在沒有導入和模塊的情況下做到這一點。這可能很容易,但我有一段時間的魔鬼。

+3

[你嘗試過什麼?](http://whathaveyoutried.com) –

回答

4

使用zip()

In [44]: nested_list= [[1, 3, 5], [3, 4, 5]] 

In [45]: [sum(x) for x in zip(*nested_list)] 
Out[45]: [4, 7, 10] 

另一種方法,使用嵌套循環:

In [6]: nested_list= [[1, 3, 5], [3, 4, 5]] 

In [7]: minn=min(map(len,nested_list)) #fetch the length of shorted list 

In [8]: [sum(x[i] for x in nested_list) for i in range(minn)] 
Out[8]: [4, 7, 10] 
+0

你怎麼會做這個使用嵌套的for循環?我想知道如何做到這一點,我只是沒有「得到它」 – spitfiredd

+0

@ user1761521嵌套for循環不需要這個。 –

+0

@ user1761521我已經添加了另一種方法來完成嵌套循環。 –

0

你也可以考慮一下這個解決方案:

map(int.__add__,*nested_list) 

更好的風格:

from operator import add 
map(add,*nested_list) 
0

這裏是你的情況的回答,您可以使用len()更改列表的長度。

nested_list= [[1, 3, 5], [3, 4, 5]] 

sum_of_items_in_nested_list=[] 
for j in range(0,3,1): 
    result=0 
    for i in range(0,2,1): 
     result=result+nested_list[i][j] 
     sum_of_items_in_nested_list = sum_of_items_in_nested_list + [result]