我有这个文字行:
3650466536850 1.364502 1 4.330733 3.295837 0.000000 0.000000 0.000000 0 0 3.583519 0 1 0 0 0 1 11 0 1 1.098612 0.000000 0.000000 -1
当我换成数组时,-1
变成了1
。
['3650466536850', '1.364502', '1', '4.330733', '3.295837', '0.000000',
'0.000000', '0.000000', '0', '0', '3.583519', '0', '1', '0', '0', '0', '1',
'1', '0', '1', '1.098612', '0.000000', '0.000000', '1']
使用此方法:
for line in LinesOfFile:
indexN = filter(None, re.split("[ \-!?:]+", line))
我是否应该在正则表达式中添加一些东西以确保-1被解释为它?
答案 0 :(得分:1)
这不会起作用吗?
for line in LinesOfFile:
indexN = filter(None, re.split("[ \!?:]+", line))
我从-
删除了re.split("[ \-!?:]+"
,因为正则表达式在-
符号上分裂,这意味着它不包含在数组中。
现在,如果您执行以下操作:
print(list(indexN))
你会得到:
['3650466536850', '1.364502', '1', '4.330733', '3.295837', '0.000000', '0.000000', '0.000000',
'0', '0', '3.583519', '0', '1', '0', '0', '0', '1', '11', '0', '20', '1', '1.098612', '0.000000',
'0.000000', '-1']
这不是你想要的吗?
答案 1 :(得分:1)
如果你坚持使用正则表达式,那么你不能这样做:
for line in LinesOfFile:
indexN = filter(None, re.split(" ", line))
目前还不清楚您使用filter()
的额外里程数是多少。
答案 2 :(得分:0)
你正在寻找像这样的东西
temp=[]
x='3650466536850 1.364502 1 4:4.330733 3.295837 0.000000 0.000000 0.000000 0 0 3.583519 0 1 0 0 0 1 11 0 20:1 1.098612 0.000000 0.000000 -1'
for i in x.split():
temp.append(i)
for x in temp:
print x