2010-09-14 89 views
0
l = [{'name': 'abc', 'marks': 50}, {'name': 'abc', 'marks': 50}] 

我想統一字典結果。如何從多個元素中創建單個元素?

result = [{'name': 'abc', 'marks': 50}] 
+0

那麼,你以前問過不是這樣嗎? http://stackoverflow.com/questions/3665414/how-to-uniqufy-the-tuple-element – dmitko 2010-09-14 08:17:07

回答

5

通常情況下,做出list只有獨特的元素最簡單的方法是將其轉換爲一個set,假設:

但是,dict不可散列,所以在你的情況下,它可能是最簡單的是手:

>>> l = [{'name': 'abc', 'marks': 50}, {'name': 'abc', 'marks': 50}] 
>>> l2 = [] 
>>> for d in l: 
...  if not d in l2: 
...   l2.append(d) 
... 
>>> l2 
[{'name': 'abc', 'marks': 50}] 

上面的代碼假設你想「uniquify」基於精確匹配dict項目。例如,如果您有兩個具有相同name但不同marks的項目,則它們都將被添加到列表中。