[pyar] Lista de diccionarios, eliminar duplicados

Bruno Geninatti brunogeninatti en gmail.com
Lun Mar 19 19:11:53 -03 2018


El 19 de marzo de 2018, 18:00, Francisco Couzo <franciscouzo en gmail.com>
escribió:

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

jajaja mala mía


>
> 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
>>
>
>
> _______________________________________________
> 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/4d71d442/attachment-0001.html>


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