将以空格分隔的整数求和为列表中的字符串

时间:2018-03-13 15:47:05

标签: python python-3.x

我目前有此列表:['5 4 7', '4 3 1', '6 8 4'', '4 8 6'] 请注意,并非所有数字都以逗号分隔。

我希望能够计算列表中每个部分的总数。例如,第一次计算应该是5 + 4 + 7给我16.我只想知道如何转换这个列表,以便能够用数字进行数学计算。

2 个答案:

答案 0 :(得分:3)

拆分字符串,映射到整数并在结果输入中对列表理解执行sum

>>> [sum(map(int,x.split())) for x in ['5 4 7', '4 3 1', '6 8 4', '4 8 6']]
[16, 8, 18, 18]

(也适用于负值:))

答案 1 :(得分:0)

您也可以使用正则表达式:

import re
s = ['5 4 7', '4 3 1', '6 8 4', '4 8 6']
new_s = [sum(map(int, re.findall('\d+', b))) for b in s]

输出:

[16, 8, 18, 18]

但是,如果每个数字都是一个字符,那么您可以使用isdigit()

last_result = [sum(map(int, filter(lambda x:x.isdigit(), i))) for i in s]