在python中一起添加列表值?

在python中一起添加列表值?,python,python-3.x,list,Python,Python 3.x,List,我有一个如下列表: ['9,7,4', '10,5,6,5,5', '10,8,5,3,0', '8,4,2'] 如何将数字转换为整数并将各个字符串值相加 因此,期望的输出将是 ['20','31','26','14'] 使用map将拆分的(使用,作为分隔符)字符串值转换为int,然后通过列表理解获得总和 input_list = ['9,7,4', '10,5,6,5,5', '10,8,5,3,0', '8,4,2'] output = [str(sum(map(int, x.split

我有一个如下列表:

['9,7,4', '10,5,6,5,5', '10,8,5,3,0', '8,4,2']
如何将数字转换为整数并将各个字符串值相加

因此,期望的输出将是

['20','31','26','14']

使用
map
将拆分的(使用
作为分隔符)字符串值转换为
int
,然后通过列表理解获得总和

input_list = ['9,7,4', '10,5,6,5,5', '10,8,5,3,0', '8,4,2']
output = [str(sum(map(int, x.split(',')))) for x in input_list]
print (output)
输出

['20', '31', '26', '14']

我在看到所需的字符串输出后进行了编辑

如果所有字符串都是这种格式,您可以尝试使用函数-这将数字转换为元组,您可以从元组中计算总和

[sum(map(int, group.split(','))) for group in l]
>>> l = ['9,7,4', '10,5,6,5,5', '10,8,5,3,0', '8,4,2']
>>> sums = [sum(numbers) for numbers in map(eval, l)]
>>> sums
[20, 31, 26, 14]
如果希望输出列表包含字符串,可以轻松映射这些值:

[str(value) for value in sums]
# or
map(str, sums)

有人提到了
eval
,因此我认为您应该进一步采用安全的eval替代方案:

>>> import ast
>>> [ast.literal_eval(v.replace(',', '+')) for v in lst]
>>> [20, 31, 26, 14]
我喜欢这个答案的一点是,它纯粹是一种非功能性的方法(在列表理解中没有
map
,这很好,但我并不真正相信混合范式)

显然,只有当数字由一个逗号分隔,没有任何前导或尾随字符以及无效的算术表达式时,这才有效


我把转换成字符串留作练习。

在列表中循环,用逗号拆分字符串,转换成整数(
int(string)
)并对结果列表求和。如果我理解的话,你应该这样做:1)遍历字符串,2)用逗号拆分字符串3)将拆分的字符串转换成整数,4)将结果合并到一个列表中。你对哪一部分有疑问?那么,真正的问题是:如何找到
'9,7,4'
的和?(如果你可以这样做,你可以做其余的。)
split
字符串,将每个片段转换为
int
,应用
sum
,转换回
str
ing。嘿,我更新了我的问题。很抱歉造成混淆。@JamesHomes:如果下面的答案有助于解决您的问题,您应该选择您认为最好的答案。在列表中使用
map
理解相当昂贵。我想您应该在拆分后使用矢量化函数。
[str(sum(np.array)(I.split(“,”,dtype=“I”))表示输入列表中的I]