首页 > 解决方案 > PY4E-大海捞针

问题描述

我正在 Coursera 中分配涉及使用正则表达式的 Python 课程。它告诉我们要

通读并解析带有文本和数字的文件。提取文件中的所有数字并计算数字的总和。

我们使用的数据是这样的

这是我的代码:

import re
handle = open('regex_sum_330187.txt')
for line in handle :
    line = line.rstrip()
    numbers = re.findall('([0-9]+)',line)

print(sum(numbers))

结果总和为0。所以我有点困惑。如果re.findall()应该返回零个或多个子字符串的列表,我的代码有什么问题?

标签: pythonregex

解决方案


看起来你只是在总结最后一行。为什么不在循环内移动求和?

import re
handle = open('regex_sum_330187.txt')
numbers = 0
for line in handle:
    line = line.rstrip()
    numbers = numbers + sum(map(lambda x: int(x), re.findall('([0-9]+)', line)))

print(numbers)

推荐阅读