2014-05-09 38 views
2

一個字符串列表,我有一個包含這種列表的列表:總結在Python

l = [['709', '651', '750', '806', '850', '759', '801'], 
    ['603', '551', '600', '555', '559', '655', '700'], 
    ['603', '-', '-', '601', '-', '-', '-']] 

我想包含每個人名單之和的新名單。

在這種情況下,結果應該是:

[5326, 4223, 1204] 

這可能嗎?

+0

這是Python的,Javascript或其他什麼東西? – zneak

+0

對不起,忘了,它的蟒蛇 –

+0

聽起來像你將不得不使用'for'循環遍歷每個數組並總結元素。 – zneak

回答

6
lists = [ 
    ['709', '651', '750', '806', '850', '759', '801'], 
    ['603', '551', '600', '555', '559', '655', '700'], 
    ['603', '-', '-', '601', '-', '-', '-'] 
] 

lists_sum = [sum(int(i) for i in l if i != '-') for l in lists] 
2

更合適:

lists = [ 
    ['709', '651', '750', '806', '850', '759', '801'], 
    ['603', '551', '600', '555', '559', '655', '700'], 
    ['603', '-', '-', '601', '-', '-', '-'] 
] 

lists_sum = [sum(int(i) for i in l if i.isdigit()) for l in lists] 
+0

沒有。 a)i.isidigit()是一種更好的形式(因爲str.isdigit(None)無論如何拋出TypeError),甚至b)負數或浮點數。 – jhermann

+0

哦,我錯過了,我會更新我的答案。 –