¿Cómo comparo dos listas de dict
? El resultado debe ser los impares fuera de la lista de dict B.¿Cómo comparar dos listas de dicts en Python?
Ejemplo:
ldA = [{'user':"nameA", 'a':7.6, 'b':100.0, 'c':45.5, 'd':48.9},
{'user':"nameB", 'a':46.7, 'b':67.3, 'c':0.0, 'd':5.5}]
ldB =[{'user':"nameA", 'a':7.6, 'b':99.9, 'c':45.5, 'd':43.7},
{'user':"nameB", 'a':67.7, 'b':67.3, 'c':1.1, 'd':5.5},
{'user':"nameC", 'a':89.9, 'b':77.3, 'c':2.2, 'd':6.5}]
Aquí quiero comparar con LDA LDB. Debería imprimir el resultado a continuación.
ldB -> {user:"nameA", b:99.9, d:43.7}
ldB -> {user:"nameB", a:67.7, c:1.1 }
ldb -> {user:"nameC", a:89.9, b:77.3, c:2.2, d:6.5}
He pasado por el siguiente enlace, pero allí solo devuelve el nombre, pero quiero nombre y valor como el anterior.
List of Dicts comparision to match between lists and detect value changes in Python
No hay diff jerárquica de estructuras arbitrarias, por lo que necesita para escribir un algoritmo algo más complicado basado en lo que sabes sobre tus datos. ¿El 'usuario' es una clave especial? ¿Se usa para establecer una correspondencia entre elementos en las listas (supongamos que 'ldB' está fuera de servicio, si el resultado es el mismo)? –
sí, clave especial del usuario aquí – newbe
Probablemente tenga más sentido, para el resto del programa así como aquí, tener estructuras más parecidas a 'ldA = {'userA': {'a': 1, 'b': 2, ...}, ...} '. –