0

我正在从xml文件中读取元素列表并将数据放入 2 个字典中。

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

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

我认为一个一个地添加它是一个坏主意,但是将它写在一行中。也就是像这样的更蟒蛇的方式

 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')被调用了两次,创建了太多的临时元组

4

1 回答 1

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)
于 2012-08-31T12:13:00.583 回答