2010-09-14 87 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的项目,则它们都将被添加到列表中。