使用 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