我已经把这个问题困扰了很长时间,现在我已经把它交给了更聪明的人。我有一个列表(列表的长度可以在1到100之间变化)。这些列表大部分重复,其中一个或两个值有所不同。所有字典的键总是保持不变。一个例子是象下面这样:如何合并Python中的字典列表中的字典?
myList = [
{"k1" : "v11", "k2" : "v21", "k3" : "v31", "k4" : "v41"},
{"k1" : "v12", "k2" : "v22", "k3" : "", "k4" : ""},
{"k1" : "v11", "k2" : "v21", "k3" : "", "k4" : "v41"},
{"k1" : "v11", "k2" : "v21", "k3" : "v31", "k4" : ""},
{"k1" : "v12", "k2" : "v22", "k3" : "v32", "k4" : ""}
]
现在我知道myList中[0],myList中[2]和myList中[3]相同,如大多数它们的当前值的相同。同样,myList [1]和myList [4]也是一样的。
我要的是实现一个功能合并(myList中),这将给像这样的输出:
newList = [
{"k1" : "v11", "k2" : "v21", "k3" : "v31", "k4" : "v41"},
{"k1" : "v12", "k2" : "v22", "k3" : "v32", "k4" : ""}
]
非常感谢提前对你的帮助。
干杯, Paritosh
那么,为什么'“K3”: “”被忽略?什么是合并规则,*完全*? –
可能的重复[如何将一列字典合并为一个字典?](http://stackoverflow.com/questions/3494906/how-do-i-merge-a-list-of-dicts-into-单个词典) – Marcin
合并规则是:如果两个词典具有最大数量的重复值(对应的键),则合并它们。它不是所有提到的问题的重复,因为我不想将所有的字典合并成一个字典,所以具有最大可能的公共值的字典应该合并。如果所有的字典都有不同的值,他们就不应该合并。 – Paritosh