对于数据错误检查:有没有办法避免使用字典作为列表

时间:2012-05-25 01:26:17

标签: python dictionary

我的数据如下:

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))  

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

1 个答案:

答案 0 :(得分: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])

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