我有一个程序,我正在尝试使用sum
一起添加列表中的所有数字,但我不认为这种格式可以帮助人吗?
list1 = ['01', '05', '07', '08', '10']
str1 = ','.join(list1)
print(str1)
total =(sum(str1))
print (total)
答案 0 :(得分:2)
像这样:
sum([int(i) for i in list1])
其中:
[int(i) for i in list1]
将您的列表转换为int
,sum()
将这些整数相加。
另一种方法是使用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)
答案 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)