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/