найти несколько вхождений строк в Python - PullRequest
4 голосов
/ 15 марта 2011

есть ли способ сделать что-то подобное?

if ['hel','ell','orl'] in 'hello world' :

Я хочу посмотреть, встречаются ли все эти строки в слове.Если возможно, более коротким способом, чем полное написание многострочного цикла.

Ответы [ 3 ]

11 голосов
/ 15 марта 2011

Вы можете сделать:

if all( x in 'hello world' for x in ['hel','ell','orl'] ):
    print "Found all of them"

Встроенные функции all и any полезны для такого рода вещей.

4 голосов
/ 15 марта 2011
if all(substr in 'hello world' for substr in ('hel','ell','orl')):
    # all are contained

Преимущество all() состоит в том, что он прекращает проверку, как только один substr не совпадает.

0 голосов
/ 15 марта 2011

Многолинейный цикл for является правильным способом продолжения. Если вам не нравится, как он выглядит в вашем коде, извлеките его в функцию, и тогда у вас будет только однострочный вызов функции для одной и той же вещи.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...