2011-11-14 13 views

Respuesta

71

haga esta prueba:

any(substring in string for substring in substring_list) 

Se volverá True si algunas de las subcadenas en substring_list está contenido en string.

en cuenta que hay un análogo de Python Marc Gravell's answer en la cuestión vinculada:

from itertools import imap 
any(imap(s.__contains__, substring_list)) 

Probablemente la versión anterior utilizando una expresión generadora es más claro sin embargo.

+3

@newtover: [Expresiones de generador] (http://docs.python.org/tutorial/classes.html#generator-expressions) no tienen corchetes. –

+2

¿hay alguna manera de obtener la subcadena cuando vuelva True? – vagabond

+2

@vagabond Puede usar 'next (substring para substring en substring_list if substring in string)', que devolverá la primera subcadena coincidente, o throw 'StopIteration' si no hay coincidencia. O use un bucle simple: 'para subcadena en substring_list: if substring en string: return substring'. –

Cuestiones relacionadas