2010/2/16 Oswaldo Hernández <lis...@soft-com.es>:
> Oswaldo Hernández escribió:
>>
>> Hola,
>>
>> ...
>> La pregunta es ¿Existe alguna forma mas compacta de hacerlo?
>>
>
> Gracias Daniel, marmolro, Kiko y César. Os respondo aqui a todos.
>
>> set(valores).intersection(set(datos))
>
> Creo que esta seria la idónea para el ejemplo que he puesto, pero una de las
> funciones que busco (la principal) es buscar texto en texto:
>
> valores = ("ab", "ale", "e de")
> datos = "esto es una frase de ejemplo"
>
> Si buscara palabras completas lo solucionaría haciendo datos.split(), pero
> debo buscar también dentro de cada palabra. Lástima.
>
> En cuanto a numpy, no se si valdría para este caso.
>
>> any(v in datos for v in valores)
>
> Esto creo que es lo que mejor se adapta a mis intenciones. (me merezco dos
> coscorrones por haber olvidado la funcion any() ;) )
>

Si lo que vas a buscar es texto también puedes hacer uso de
expresiones regulares:

import re

valores = ("ab", "ale", "e de")
expr = re.compile("(%s)" % "|".join(valores))
datos = "esto es una frase de ejemplo"

bool(expr.search(datos))
_______________________________________________
Python-es mailing list
Python-es@python.org
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/

Responder a