删除数字和总和 python <class 'str'> 之间的空格的最佳方法?

Best way to remove spaces between digits and sum python <class 'str'>?

我是一名学习者,目前正在完成一项任务,即将完成,但我对如何完成感到困惑。 我有一个 < class 'str'> 看起来像:

我需要删除 2 位数字之间的空格,以便我可以轻松地对所有数字求和。 以下是确切的字符串:

                                                          9 7           9 7          9 0           9 0           8 8           8 7            8 7              8 0    
 7 9         7 9       7 8           7 6           7 6          7 2          7 2           6 6          6 6          6 5           6 5            6 4           6 
1            6 1          5 9          5 8           5 7         5 7                5 4          5 1          4 9          4 7         4 0          3 8           3 7 
     3 6              3 6              3 2          2 5          2 4           2 2          2 1         1 9          1 8          1 8          1 4          1 2   
       1 2            9             7           3          2

我在这里用 Regex 检查了类似的答案,我尝试的每个解决方案似乎只是删除所有空格(留下一长串数字)或将它们分隔成单个数字。

解决这个问题的最佳方法是什么?

您可以使用正则表达式来查找数字 '\d',该数字可以选择后跟一个 space,然后是另一个数字 '(?: \d)?'。然后在列表理解中删除中间的白色space 如果有一个

>>> [i.replace(' ', '') for i in re.findall(r'(\d(?: \d)?)', s)]
['97', '97', '90', '90', '88', '87', '87', '80', '79', '79', '78', '76', '76', '72', '72', '66', '66', '65', '65', '64', '6', '1', '61', '59', '58', '57', '57', '54', '51', '49', '47', '40', '38', '37', '36', '36', '32', '25', '24', '22', '21', '19', '18', '18', '14', '12', '12', '9', '7', '3', '2']

将这些转换成 int 类型

>>> [int(i.replace(' ', '')) for i in re.findall(r'(\d(?: \d)?)', s)]
[97, 97, 90, 90, 88, 87, 87, 80, 79, 79, 78, 76, 76, 72, 72, 66, 66, 65, 65, 64, 6, 1, 61, 59, 58, 57, 57, 54, 51, 49, 47, 40, 38, 37, 36, 36, 32, 25, 24, 22, 21, 19, 18, 18, 14, 12, 12, 9, 7, 3, 2]

并对它们求和

>>> sum(int(i.replace(' ', '')) for i in re.findall(r'(\d(?: \d)?)', s))
2499