2017-09-26 98 views
-3

我有一個程序,我試圖使用sum將列表中的所有數字一起添加,但我不認爲格式可以幫助任何人嗎?添加列表sum()

list1 = ['01', '05', '07', '08', '10'] 
str1 = ','.join(list1) 
print(str1) 

total =(sum(str1)) 
print (total) 
+0

您是否需要添加所有列表元素,或者是否需要將所有列表元素組合在一起? – JKC

+0

你可以簡單地將每個元素轉換爲整數,並做 – nanithehaddock

回答

0

只是做:

sum([int(ele) for ele in list1]) 

你的列表是一個list of strings,所以在這裏我們每個元素轉換爲int,比服用它sum

In : list1 = ['01', '05', '07', '08', '10'] 
Out : 31 
2

是這樣的:

sum([int(i) for i in list1]) 

其中:

[int(i) for i in list1] 

列表轉換爲int,並sum()增加了這些整數。

另一種方法是使用map()

sum(map(int, list1)) 

這也轉化成的List1和int總結的內容。

最後,你可以使用匿名函數lambda,增加了轉化爲int元素reduce()列表:

reduce(lambda x, y: int(x) + int(y), list1) 
1

剛寫的Python的一行代碼總結列表。

print(sum(int(i) for i in list1)) #python 3.x 
+0

感謝這工作!歡呼聲 –

1

你可以這樣做只是在同一行

sum(map(int, list1)) 

map - 這會的list1每個元素映射到int

+0

@MoinuddinQuadri是什麼原因? – Sanket

0

您試圖總結一個字符串,而不是一個整數的列表。您需要將您的列表轉換爲數字列表,然後您可以總結:

list1 = ['01', '05', '07', '08', '10'] 
str1 = ','.join(list1) 
print(str1) 
number_list=[int(i) for i in list1] 

total =sum(number_list) 
print(total)