提前返回寫入(檢查按照正確的順序條件,請參閱給出答案)通常要明智首選性能。
如果你不能使用早期返回,而是需要對元素的任意條件,請記住你有(列表/詞典)理解。
例如
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"
最後和早期恢復來實現。
字典甚至更好(和更Python):
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