Python 如何创建列表和总结

Python 如何创建列表和总结,python,Python,我对python还比较陌生,并被困在以下方面: 下面是我正在使用的代码 import re handle = open ('RegExWeek2.txt') for line in handle: line = line.rstrip() x = re.findall('[0-9]+', line) if len(x) > 0: print x 此代码返回的结果如下所示: ['7430'] ['9401', '9431'] ['2248', '

我对python还比较陌生,并被困在以下方面: 下面是我正在使用的代码

import re

handle = open ('RegExWeek2.txt')
for line  in handle:
    line = line.rstrip()
    x = re.findall('[0-9]+', line)
    if len(x) > 0:
        print x
此代码返回的结果如下所示:

['7430']
['9401', '9431']
['2248', '2047']
['5517']
['3184', '1241']
['9939']
['2185', '9450', '8428']
['369']
['3683', '6442', '7654']
问题:我如何将这些数据合并到一个列表中,并对数字进行汇总?
请帮助

您可以这样更改代码

handle = open ('RegExWeek2.txt')
num = []
for line  in handle:
    num.extend(re.findall('[0-9]+', line))
print sum(int(i) for i in num)
由于您使用的是
re.findall
,因此不需要此
line.rstrip()
行。
而且x也不可能是空列表,因为我们在
[0-9]
旁边使用
+
(重复前面的标记一次或多次)而不是
*
(零次或多次)

您可以这样更改代码

handle = open ('RegExWeek2.txt')
num = []
for line  in handle:
    num.extend(re.findall('[0-9]+', line))
print sum(int(i) for i in num)
由于您使用的是
re.findall
,因此不需要此
line.rstrip()
行。
而且x也不可能是空列表,因为我们在
[0-9]
旁边使用
+
(重复前面的标记一次或多次)而不是
*
(零次或多次)

不需要
rstrip
,您应该使用
打开文件:

import re

all_numbers = []
with open('RegExWeek2.txt') as file:
    for line in file:
        numbers = re.findall('[0-9]+', line)
        for number in numbers:
            all_numbers.append(int(number))

print(sum(all_numbers))
这是一段真正的初学者代码,也是您的直接翻译。我会这样写:

with open('RegExWeek2.txt') as file:
    all_numbers = [int(num) for num in re.findall('[0-9]+', file.read())]
print(sum(all_numbers))

无需
rstrip
,您应该使用
with
打开文件:

import re

all_numbers = []
with open('RegExWeek2.txt') as file:
    for line in file:
        numbers = re.findall('[0-9]+', line)
        for number in numbers:
            all_numbers.append(int(number))

print(sum(all_numbers))
这是一段真正的初学者代码,也是您的直接翻译。我会这样写:

with open('RegExWeek2.txt') as file:
    all_numbers = [int(num) for num in re.findall('[0-9]+', file.read())]
print(sum(all_numbers))

非常感谢你的帮助接受一个有帮助的答案。非常感谢你的帮助接受一个有帮助的答案。