Я долго пробовал этот мозг, и теперь передаю его более мудрым. У меня есть список dicts (длина списка может варьироваться от 1 до 100). Эти списки имеют в основном дубликаты с одним или двумя значениями. Клавиши для всех dict всегда остаются неизменными. Примером может быть, как показано ниже:Как слить dicts из списка dicts в 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»: «" игнорируется? Каковы правила слияния, * точно *? –
Возможный дубликат [Как объединить список dicts в один dict?] (Http://stackoverflow.com/questions/3494906/how-do-i-merge-a-list-of-dicts-into- a-single-dict) – Marcin
Правила слияния: если два dicts имеют максимальное количество повторяющихся значений (для соответствующих ключей), объедините их. И это не возможный дубликат упомянутого вопроса, потому что я не хочу объединять все диктофоны в один диктант, дикты с максимально возможными общими значениями должны сливаться. Если все dicts имеют разные значения, они не должны сливаться. – Paritosh