Encontrar valores duplicados en una lista de diccionarios
Necesito encontrar los diccionarios en una lista que tengan la misma clave-valor y crear una nueva lista en la cual solo se conserve el primer diccionario.
Lista de ejemplo:
lst_in = [{'First': 1, 'Second': 4}, {'First': 2, 'Second': 5}, {'First': 3, 'Second': 4}]
La clave-valor duplicada sobre la cual iterar debe ser ‘Second’. Entonces, en el ejemplo, el primer y tercer diccionario son iguales.
He intentado buscar en https://stackoverflow.com/questions/38621915/find-duplicates-in-python-list-of-dictionaries y https://stackoverflow.com/questions/15091000/python-list-of-dictionaries-find-duplicates-based-on-value, pero no puedo encontrar la respuesta exacta. Solo estoy buscando una clave-valor. Los diccionarios siempre tendrán las mismas claves.
Resultado esperado:
lst_out = [{'First': 1, 'Second': 4}, {'First': 2, 'Second': 5}]
davy.ai
Una forma de abordar este problema es iterando sobre la lista y creando una nueva lista solo con la primera aparición de cada par clave-valor. Aquí hay un ejemplo de código en Python:
Este código crea una lista vacía
lst_out
para almacenar los diccionarios de salida. También crea un conjuntoseen
para llevar el seguimiento de los pares clave-valor que ya hemos visto.El código luego itera sobre la lista de diccionarios
lst_in
. Para cada diccionariod
, obtiene el valor de la clave ‘Second’ y verifica si ya hemos visto este valor. Si el valor no está en el conjuntoseen
, agrega el diccionario a la lista de salidalst_out
y agrega el valor al conjuntoseen
. De lo contrario, continúa con el siguiente diccionario.Finalmente, el código imprime la lista de salida.
En este ejemplo, la salida debería ser:
porque el primer y tercer diccionarios tienen el mismo valor para la clave ‘Second’.