这是构建字典的最快方法吗?

时间:2012-08-31 12:07:49

标签: python performance list dictionary

我正在从xml文件中读取元素列表,并将数据分成2个词典。

这是最快的方式吗? (我不认为这是最好的,你们总是让我感到惊讶。; - )

ADict = {}
BDict = {}
for x in fields:
    key = x.get('key')
    ADict[key] = x.find('A').text
    BDict[key] = x.find('B').text

我认为逐个添加它是一个坏主意,但是将它写在一行中。又更像这样的pythonic方式

 ADict,BDict = [dict(k) for k in zip(*([(x.get('key'),x.find('A').text),(x.get('key'),x.find('B').text)] for x in fields))]

我认为这不是更好,有两个原因, 首先,x.get('key')被调用了两次 第二,创造太多的临时元组

1 个答案:

答案 0 :(得分:4)

未经测试,但应该有效

ADict = dict((x.get('key'), x.find('A').text) for x in fields)
BDict = dict((x.get('key'), x.find('B').text) for x in fields)