[Python-es] Buscar varios elementos en una lista

marmolro marmolro en gmail.com
Mar Feb 16 14:20:49 CET 2010


2010/2/16 Daniel Garcia Moreno <dani en danigm.net>

> 2010/2/16 Oswaldo Hernández <listas en soft-com.es>:
> > Hola,
> >
> > Tengo una lista de valores y otra de datos, quiero comprobar si uno
> > cualquiera de los valores existe en la lista de datos. En este momento lo
> > hago utilizando un bucle for para comprobar uno a uno:
> >
> > valores = (15, 45, 190)
> > datos = (22, 33, 55, 567, 44, 234, 45)
> > existe = False
> >
> > for v in valores:
> >    if v in datos:
> >        existe = True
> >        break
> >
> > if existe:
> >    ...
> > else:
> >    ...
> >
> > La pregunta es ¿Existe alguna forma mas compacta de hacerlo?
> >
>
> set(valores).intersection(set(datos))
>
> No se si te he entendido bien, pero si es así, esto debería valer.
> _______________________________________________
> Python-es mailing list
> Python-es en python.org
> http://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
>

Con List comprehensions:

>>> [v in datos for v in valores]
[False, True, False]

y rizando el rizo:

>>> True in [v in datos for v in valores]
True

Ahora bien, no sé si a nivel de prestaciones que es mejor :)
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://mail.python.org/pipermail/python-es/attachments/20100216/817f40f8/attachment.html>


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