Раннее возвращение (проверка условия в правильном порядке, см даны ответы), как правило, предпочтительнее производительность мудрым.
Если вы не можете использовать раннее возвращение, но вместо этого требуете произвольных условий для элементов, помните, что у вас есть (список/dict) понимания.
Например
contains_matrix = [
(element in htmlText)
for element in ("element1", "element2", "element3")
]
позволит получить список с True
и False
для каждого из элементов. условие вы упоминаете в вопросе может быть сформулирована как
not contains_matrix[0] and not contains_matrix[1] and contains_matrix[2]
Позвольте мне повторить: тот же результат может быть достигнут путем проверки "element3"
последнего и возвращение рано.
Словари еще лучше (и более вещий):
contains_dict = {
element: (element in htmlText)
for element in ("element1", "element2", "element3")
}
Оценка с:
(
not contains_dict['element1']
and not contains_dict['element2']
and contains_dict['element3']
)
или даже
[element for element, contained in contains_dict.items() if contained]
, который дает вам все элементы, которые содержатся в HTML.
Что-то вроде этого? [Как проверить одну переменную на несколько значений?] (Http://stackoverflow.com/q/15112125) –
да. 'AND' .... – skndstry
Существует * и *, конечно, (что буквально 'и'). Но если я получу вас правильно, вы хотите «это условие» и «не другие условия»? – dhke