0

如何在字典列表中替换所有字典(每个字典具有相同或不同值的相同键)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'}]
4

1 回答 1

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']}

你会想测试看看从长远来看这是否真的更快。

于 2013-08-29T12:39:11.327 回答