繁体   English   中英

如何创建列表和总结

[英]how to create a list and sum up

我是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]旁边使用+将前一个标记重复一次或多次 )而不是*零次或多次

有没有必要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))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM