0

我的数据如下所示:

Observation 1  
Type : 1  
Color: 2  

Observation 2  
Color: 2  

Resolution: 3

最初我所做的是尝试创建一个如下所示的 csv:

1,2  
2,3  # Only problem here is that the data should look like this 1,2,\n ,2,3 #  

我执行了以下操作:

while linecache.getline(filename, curline):  
    for i in range(2):    
        data_manipulated = linecache.getline(filename, curline).rstrip()    
        datamanipulated2 = data_manipulated.split(":")  
        datamanipulated2.pop(0)  
        lines.append(':'.join(datamanipulated2))  

这是一个相当大的数据集,我试图找到方法来验证上述问题不会发生,以便我可以适当地编译数据并进行检查。我遇到了字典,但是,性能对我来说是一个大问题,如果可能的话,我更喜欢列表(至少,我的理解是字典可能会慢得多?)。我只是想知道是否有人对最快、最可靠的方法有任何建议?

4

1 回答 1

1

怎么样:

input_file = open('/path/to/input.file')
results = []
for row in file:
    m = re.match('Observation (\d+)', row)
    if m:
        observation = m.group(1)
        continue
    m = re.match('Color: (\d+)', row)
    if m:
        results.append((observation, m.group(1),))
        print "{0},{1}".format(*results[-1])

您可以使用预编译的正则表达式加速。

于 2012-05-25T05:21:34.073 回答