我正在读取一个txt文件:(它的格式如下所示)
(+1 +2 +3 +4) (-4-9)(-3-6-7)
我想要的输出是有两个(整数)列表
无论是在\n之前还是之后。
示例:
BEFORE_LIST = [1,2,3,4]
AFTER_LIST = [[-4,-9] , [-3, -6, -7]]我无法找出分裂和剥离的正确组合来实现这一点。
任何帮助我都非常感激。
发布于 2016-04-27 06:05:59
listOfValues = (x.split(' ')for x in (val.replace(')','') for val in input().split('(')))
listOfIntegers = list(filter(None, [[int(value) for value in values if isInt(value)]for values in listOfValues]))
print(listOfIntegers)is isInt方法可以定义为:
def isInt(s):
try:
int(s)
return True
except:
return False或者更详细的解决方案,以避免例外情况:
def isInt(s):
return s.replace('+').replace('-').isdecimal() // doesn't cover all cases 这不检查无效的输入格式(例如不匹配的偏执)。
发布于 2016-04-27 05:59:07
能行吗?
import re
from ast import literal_eval
with open('test','r') as f:
for line in f:
line = line.replace(' ',',').replace('+','')
my_list = re.findall(r'\(.+?\)',line)
result = [list(literal_eval(i)) for i in my_list]
if len(result)==1:
result = [i for term in result for i in term ]
print result输出:
[1, 2, 3, 4]
[[-4, -9], [-3, -6, -7]]https://stackoverflow.com/questions/36880860
复制相似问题