2013-08-29 83 views
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'}] 
+0

你對'content'做了什麼? –

+0

那麼,顯示你得到的是不是工作,或者你覺得是非常糟糕的設計。也許你已經有了最高效的代碼,但是沒有人看不到它。 – Evert

回答

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

你會想要測試,看看這是否實際上是更快的長期運行。

相關問題