使用 Python 组合来自正则表达式的两个列表
Combing two lists from regex using Python
我正在使用正则表达式从使用 python 的日志文件中获取值。代码如下:
with open(logFile, 'r') as logfile_read:
for line in logfile_read:
line = line.rstrip()
if 'Time' in line:
iteration_time = re.findall(r'^Time = ([0-9]+)', line)
if 'cumulative' in line:
contCumulative_0 = re.search(r'cumulative = (-?[\d|.]+)', line)
if contCumulative_0:
cumvalue = contCumulative_0.groups(1)
merge = zip(iteration_time, cumvalue)
print merge
以上代码的输出是:
[('1', '0.00142109')]
[('2', '0.00354587')]
[('3', '0.00166678')]
[('4', '-0.00477095')]
[('5', '-0.00814067')]
[('6', '-0.00854863')]
[('7', '-0.00710546')]
[('8', '-0.00715775')]
[('9', '-0.00580527')]
[('10', '-0.0061622')]
我希望输出如下所示,以便我可以写入文件并绘制它。
1 0.00142109
2 0.00354587
3 0.00166678
等等。我正在努力将上面的元组转换为字符串。
添加一个额外的 for 循环。
>>> l = [('1', '0.00142109')]
>>> for (x,y) in l:
... print(x,y)
...
1 0.00142109
或
>>> for (x,y) in l:
... print(x+"\t"+y)
...
1 0.00142109
使用连接和映射如下:
merge = ' '.join(map(double,merge[0]))
在写入文件时,转换为双精度是可选的:
merge = ' '.join(merge[0])
您需要使用 Python 的 .join()
函数来连接 list/tuple 个字符串。例如:
>>> tup = ('1', '0.00142109')
>>> print '\t'.join(tup)
1 0.00142109
我正在使用正则表达式从使用 python 的日志文件中获取值。代码如下:
with open(logFile, 'r') as logfile_read:
for line in logfile_read:
line = line.rstrip()
if 'Time' in line:
iteration_time = re.findall(r'^Time = ([0-9]+)', line)
if 'cumulative' in line:
contCumulative_0 = re.search(r'cumulative = (-?[\d|.]+)', line)
if contCumulative_0:
cumvalue = contCumulative_0.groups(1)
merge = zip(iteration_time, cumvalue)
print merge
以上代码的输出是:
[('1', '0.00142109')]
[('2', '0.00354587')]
[('3', '0.00166678')]
[('4', '-0.00477095')]
[('5', '-0.00814067')]
[('6', '-0.00854863')]
[('7', '-0.00710546')]
[('8', '-0.00715775')]
[('9', '-0.00580527')]
[('10', '-0.0061622')]
我希望输出如下所示,以便我可以写入文件并绘制它。
1 0.00142109
2 0.00354587
3 0.00166678
等等。我正在努力将上面的元组转换为字符串。
添加一个额外的 for 循环。
>>> l = [('1', '0.00142109')]
>>> for (x,y) in l:
... print(x,y)
...
1 0.00142109
或
>>> for (x,y) in l:
... print(x+"\t"+y)
...
1 0.00142109
使用连接和映射如下:
merge = ' '.join(map(double,merge[0]))
在写入文件时,转换为双精度是可选的:
merge = ' '.join(merge[0])
您需要使用 Python 的 .join()
函数来连接 list/tuple 个字符串。例如:
>>> tup = ('1', '0.00142109')
>>> print '\t'.join(tup)
1 0.00142109