[Python-es] Como: crear una lista y filtrar contenido para no repetirlo?

Cheru Bazan cherubazan en gmail.com
Jue Sep 27 19:44:26 CEST 2012


Hola,

Puedes hacer
result = list(set(result))

El set elimina los resultados repetidos y lo vuelves a convertir a una
lista.

Saludos
El 27/09/2012 15:42, "Néstor C." <xalabin en gmail.com> escribió:

> Como alternativa, puedes ordenarla y recorrerla luego de atrás hacia
> adelante y borrar los ítems que sean iguales a los que le preceden.
> El 25/09/2012 22:54, "Jhonatan Sneider Salguero Villa" <sney2002 en gmail.com>
> escribió:
>
>> Puedes usar un diccionario en lugar de una lista, de está firma no tienes
>> que preocuparte de las repeticiones.
>>
>> >>> result = {}
>> >>> for n in xmldoc.getElementsByTagName("name"):
>>     result[n] = result.get(n, 0) + 1
>>
>> >>> result.keys()
>>
>> así incluso conserva el número de repeticiones por su luego las necesita.
>>  El 25/09/2012 15:39, "Diego Uribe Gamez" <diego.uribe.gamez en gmail.com>
>> escribió:
>>
>>> Buenas,
>>>
>>> Estoy haciendo una lista pero hay mucho contenido repetido:
>>>
>>> >>> result = []
>>> >>> for n in xmldoc.getElementsByTagName("name"):
>>> ...     if result == []:
>>> ...         result.append(n.firstChild.data)
>>> ...     else:
>>> ...         if result.count(n.firstChild.data) == 0:
>>> ...             result.append(n.firstChild.data)
>>> ...
>>> >>> result
>>> [u'Calle 8', u'Calle 11', u'Calle 7', u'Carrera 8', u'Carrera7',
>>> u'Calle7b', u'Calle 15', u'Carrera 7', u'Carrera 16', u'Calle 6 e', u'Calle
>>> 6e', u'Carrera 6b', u'Carrera 6a', u'Carrera 9', u'Calle 7a', u'Carrera 16
>>> a', u'Carrera 11', u'Carrera 6 b', u'Calle 6 c', u'Carrera  12', u'Carrera
>>> 18', u'Calle 6 a', u'Calle Boyaca', u'Carrera 5', u'Calle 7b', u'Calle  7
>>> a', u'Carrera 10']
>>>
>>> A mi me sirve que solo salga la primera calle (Calle 8) y la primera
>>> carrera (Carrera 8)
>>>
>>> Como hago para que cuando haga la búsqueda
>>> del result.count(n.firstChild.data) en el mismo o de forma
>>> posterior también pueda hacer una búsqueda en el texto de cada elemento de
>>> la lista y que si hay mas de 1 contenido con texto Calle deje de hacer el
>>> append? o algo así por el estilo?
>>>
>>> Gracias.
>>>
>>> --
>>>  *Diego Alonso Uribe Gamez*
>>> ------------------------------
>>>
>>> *Desarrollador web*
>>>
>>> Twitter: @DiegoUG <http://www.twitter.com/DiegoUG>
>>>
>>> Google+: http://gplus.to/diegoug
>>> ------------------------------
>>>
>>>
>>>
>>> _______________________________________________
>>> Python-es mailing list
>>> Python-es en python.org
>>> http://mail.python.org/mailman/listinfo/python-es
>>> FAQ: http://python-es-faq.wikidot.com/
>>>
>>>
>> _______________________________________________
>> Python-es mailing list
>> Python-es en python.org
>> http://mail.python.org/mailman/listinfo/python-es
>> FAQ: http://python-es-faq.wikidot.com/
>>
>>
> _______________________________________________
> Python-es mailing list
> Python-es en python.org
> http://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
>
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://mail.python.org/pipermail/python-es/attachments/20120927/db9ee210/attachment.html>


Más información sobre la lista de distribución Python-es