我有一个包含数千行的生成的文件,如下所示: CODE,XXX,DATE,20101201,TIME,070400,CONDITION_CODES,LTXT,PRICE,999.0000,QUANTITY,100,TSN,1510000001 有些行的字段更多,而其他行的字段较少,但是所有行都遵循相同的键值对模式,每行都有一个TSN字段。
CODE,XXX,DATE,20101201,TIME,070400,CONDITION_CODES,LTXT,PRICE,999.0000,QUANTITY,100,TSN,1510000001
在对文件进行一些分析时,我编写了如下所示的循环,以将文件读入字典:
#!/usr/bin/env python from sys import argv records = {} for line in open(argv[1]): fields = line.strip().split(',') record = dict(zip(fields[::2], fields[1::2])) records[record['TSN']] = record print 'Found %d records in the file.' % len(records)
…这很好,并且确实满足我的要求(这print只是一个简单的示例)。
但是,对于我和以下行而言,它并不是特别“ pythonic”: dict(zip(fields[::2], fields[1::2])) 哪一个感觉“笨拙”(在字段上迭代了多少次?)。
dict(zip(fields[::2], fields[1::2]))
仅使用标准模块,在python 2.6中有更好的方法吗?