我需要获取列表生成的元素,将它们转换为整数,然后得到它们的总和。我想使用基本的for循环将列表转换为整数,但无法弄清楚如何编写代码将列表转换为整数。到目前为止,我的代码中出现的数据如下所示:
['9085', '5174']
['7297']
['9488']
['8370', '1014', '4870']
['4719']
['3004', '4969', '2458']
['9445', '7420']
['50', '1690', '8374']
......等等。到目前为止,我的代码看起来像这样:
import re
hand = open('Regex-Actual.txt')
numbers = []
for line in hand:
line = line.rstrip()
y= re.findall('[0-9]+',line)
if len(y) > 0 :
print y
numbers = [int(y) for y in numbers]
print numbers
我是Python的初学者,因此对答案的解释意味着很多!
答案 0 :(得分:2)
你真的不需要使用正则表达式解决这个问题,你可以轻松地从数字字符串中创建数字!
string_list = ['8370', '1014', '4870']
number_list = [int(x) for x in string_list] # using list comprehension
sum(number_list)
# 14254
如果您从文件中读取它,则可能会以列表的字符串形式获取列表。例如,您将获得"['8370', '1014', '4870']"
。从这个列表:
import ast
lst = "['8370', '1014', '4870']"
lst = ast.literal_eval(lst)
#lst becomes ['8370', '1014', '4870']