- python 如何将字符串转换为整数并与列表求和?

  显示原文与译文双语对照的内容
64 4

我想总结一下字符串的列表。我试图使用循环和 int() 将字符串转换为整数。但是它不起作用,我该怎么做?感谢你的回答 !

a = ['1','2','3']
total = 0
for i in a:
 int(i)
 total = total + i
print(total) #expected output:6
时间:原作者:0个回答

87 38

使用 sum()map() 将每个项映射到 int:

a = ['1','2','3']
print(sum(map(int, a)))
# 6

如果不给 i 赋值,int(i) 就不会改变。所以你的代码应该是:

for i in a:
 i = int(i)
 total = total + i

或者,稍后:

for i in a:
 total = total + int(i)
原作者:
93 0

我不清楚为什么大家都建议循环。Imo的Pythonic 方式如下:

total = sum([int(x) for x in a])

total +=... 相比,在RAM上可以能比较重,但是我肯定它会更快。

编辑:就像 @tevemadar 指出的,你可以实际执行以下操作:

total = sum((int(x) for x in a))

它将列表理解变成一个生成器,这是一个更好的解决方案,因为它不需要列表。

EDIT2: 第二个解决方案需要注意的是,在定义 total 之后改变 a 实际上影响 total

原作者:
...