列表添加sum()

时间:2017-09-26 09:01:23

标签: python

我有一个程序,我正在尝试使用sum一起添加列表中的所有数字,但我不认为这种格式可以帮助人吗?

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

total =(sum(str1))
print (total)

5 个答案:

答案 0 :(得分:2)

像这样:

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

其中:

[int(i) for i in list1]

将您的列表转换为intsum()将这些整数相加。

另一种方法是使用map()

sum(map(int, list1))

这也将list1转换为int并总结内容。

最后,您可以使用匿名函数reduce()lambda您的列表,该函数会将转换为int的元素相加:

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

答案 1 :(得分:1)

只需编写单行pythonic代码即可汇总列表。

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

答案 2 :(得分:1)

你可以在一行中完成

sum(map(int, list1))

map - 这会将list1的每个元素映射到int

答案 3 :(得分:0)

Just Do:

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

您的列表是list of strings,因此我们将每个元素转换为int而不是sum

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

答案 4 :(得分: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)