2011-11-14 5 views

Trả lời

71

Hãy thử kiểm tra này:

any(substring in string for substring in substring_list) 

Nó sẽ trở lại True nếu một trong các chuỗi con trong substring_list được chứa trong string.

Lưu ý rằng có một tương tự Python của Marc Gravell's answer trong câu hỏi liên quan:

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

Có lẽ phiên bản trên sử dụng một biểu thức máy phát điện là rõ ràng mặc dù.

+3

@newtover: [Biểu thức máy phát] (http://docs.python.org/tutorial/classes.html#generator-expressions) không có dấu ngoặc vuông. –

+2

là có cách nào để có được chuỗi con khi nó sẽ trả về True? – vagabond

+2

@vagabond Bạn có thể sử dụng 'next (chuỗi con cho chuỗi con trong chuỗi substring_list nếu chuỗi con trong chuỗi)', sẽ trả lại chuỗi con phù hợp đầu tiên hoặc ném 'StopIteration' nếu không có kết quả phù hợp. Hoặc sử dụng một vòng lặp đơn giản: 'cho chuỗi con trong chuỗi con: nếu chuỗi con trong chuỗi: trả về chuỗi con'. –