[pyar] Lista de diccionarios, eliminar duplicados

Francisco Couzo franciscouzo en gmail.com
Lun Mar 19 18:00:23 -03 2018


Bruno, obviamente eso no va a funcionar porque los diccionarios no son
hasheables.

Willians, lo que podés hacer es convertir todos los diccionarios a tuplas
con tuple(sorted(d.items())), y después de eso vas a podés meterlos en un
set.

2018-03-19 17:48 GMT-03:00 Bruno Geninatti <brunogeninatti en gmail.com>:

> Hola Willians. ¿Por que no usas sets[1] en lugar de lists[2]?
>
> Saludos
>
> [1] https://docs.python.org/3.5/library/stdtypes.html?highlight=set#set
> [2] https://docs.python.org/3.5/library/stdtypes.html?highlight=list#list
>
> El 19 de marzo de 2018, 17:42, Willians Vivanco <williansvi en gmail.com>
> escribió:
>
>> Hola,
>>
>> Como indico en el enunciado necesito eliminar los diccionarios duplicados
>> de una lista... Todos los métodos tradicionales me devuelven un *TypeError:
>> unhashable type: 'dict'* por ahí existe alguna manera dirty, pero ando
>> buscando algo lo más pythonic posible.
>>
>> Un ejemplo de la lista de marras puede ser:
>>
>> [{'guid': 'com.empresa.HAProxy', 'duration': 60, 'metrics':
>> {'Component/qtime/BACKEND': 0, 'Component/qtime/servidor-10': 0,
>> 'Component/ctime/BACKEND': 0, 'Component/rtime/servidor-10': 0,
>> 'Component/rtime/BACKEND': 0, 'Component/ctime/servidor-10': 0}, 'name':
>> 'servicio1-be'},
>> {'guid': 'com.empresa.HAProxy', 'duration': 60, 'metrics':
>> {'Component/qtime/BACKEND': 0, 'Component/qtime/servidor-10': 0,
>> 'Component/ctime/BACKEND': 0, 'Component/rtime/servidor-10': 0,
>> 'Component/rtime/BACKEND': 0, 'Component/ctime/servidor-10': 0}, 'name':
>> 'servicio1-be'},
>>  {'guid': 'com.empresa.HAProxy', 'duration': 60, 'metrics':
>> {'Component/qtime/BACKEND': 0, 'Component/qtime/servidor-11': 0,
>> 'Component/qtime/servidor-10': 0, 'Component/ctime/BACKEND': 1,
>> 'Component/ctime/servidor-11': 2, 'Component/rtime/servidor-10': 3554,
>> 'Component/rtime/servidor-11': 3640, 'Component/rtime/BACKEND': 3549,
>> 'Component/ctime/servidor-10': 0}, 'name': 'servicio2-be'},
>>  {'guid': 'com.empresa.HAProxy', 'duration': 60, 'metrics':
>> {'Component/qtime/BACKEND': 0, 'Component/qtime/servidor-10': 0,
>> 'Component/ctime/BACKEND': 0, 'Component/rtime/servidor-10': 0,
>> 'Component/rtime/BACKEND': 0, 'Component/ctime/servidor-10': 0}, 'name':
>> 'servicio1-be'}]
>>
>>
>> Y lo que ando buscando es que me quede solo:
>>
>>
>> [{'guid': 'com.empresa.HAProxy', 'duration': 60, 'metrics':
>> {'Component/qtime/BACKEND': 0, 'Component/qtime/servidor-11': 0,
>> 'Component/qtime/servidor-10': 0, 'Component/ctime/BACKEND': 1,
>> 'Component/ctime/servidor-11': 2, 'Component/rtime/servidor-10': 3554,
>> 'Component/rtime/servidor-11': 3640, 'Component/rtime/BACKEND': 3549,
>> 'Component/ctime/servidor-10': 0}, 'name': 'servicio2-be'},
>>  {'guid': 'com.empresa.HAProxy', 'duration': 60, 'metrics':
>> {'Component/qtime/BACKEND': 0, 'Component/qtime/servidor-10': 0,
>> 'Component/ctime/BACKEND': 0, 'Component/rtime/servidor-10': 0,
>> 'Component/rtime/BACKEND': 0, 'Component/ctime/servidor-10': 0}, 'name':
>> 'servicio1-be'}]
>>
>>
>>
>> Alguna sugerencia?
>>
>> Agradecido de antemano,
>>
>> --
>> Willians Vivanco
>> https://ar.linkedin.com/in/williansvi
>>
>> _______________________________________________
>> Lista de Correo de PyAr - Python Argentina - pyar en python.org.ar
>> Sitio web: http://www.python.org.ar/
>>
>> Para administrar la lista (o desuscribirse) entrar a
>> http://listas.python.org.ar/listinfo/pyar
>>
>> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
>> Argentina - http://www.usla.org.ar
>>
>
>
> _______________________________________________
> Lista de Correo de PyAr - Python Argentina - pyar en python.org.ar
> Sitio web: http://www.python.org.ar/
>
> Para administrar la lista (o desuscribirse) entrar a
> http://listas.python.org.ar/listinfo/pyar
>
> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
> Argentina - http://www.usla.org.ar
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20180319/e70ee451/attachment-0001.html>


Más información sobre la lista de distribución pyar