如何在词典列表中替换所有出现一次以上只有一个新词典的词典?

时间:2013-08-29 09:49:41

标签: python python-2.7

如何替换词典列表(每个词典具有相同或不同值的相同键)所有词典with same values of keys id and type which occur more than 0ne time with just one new dictionary with type group? 我可以通过迭代计数存在并将列表中的所有组合与多个存在并替换,但是有更快的方法吗?

[{id:1, type:1, content:'txt'},{id:2, type:1, content:'abc'},{id:1, type:1, content:'yup'},{id:1, type:1, content:'dmg'}]

将成为

[{id:1, type:'group', content:'txt'},{id:2, type:1, content:'abc'}]

1 个答案:

答案 0 :(得分:0)

由于在列表中搜索速度很慢,因此可能需要生成一个字典词典作为中间词,特别是如果您稍后将通过id搜索。如有必要,您可以稍后转换回列表。

#ld = the list of dictionaries to be processed
nd = {}
for dict in ld:
    i= dict['id']
    if i in nd:
        if nd[i]['type'] != 'group': 
            nd[i]={'type':'group', 'content':'txt'}
    else:
        nd[i]={'type':dict['type'],'content':dict['content']}

您可能希望测试一下,从长远来看,这实际上是否更快。