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 に答える