有沒有更好的方式來寫這樣的事情?更簡單的方法來寫這堅持pylint
if 'legal' in href_link or 'disclaimer' in href_link or 'contact' in href_link or 'faq' in href_link or 'terms' in href_link or 'log' in href_link:
continue
最好在一條線上......我在哪裏看?
有沒有更好的方式來寫這樣的事情?更簡單的方法來寫這堅持pylint
if 'legal' in href_link or 'disclaimer' in href_link or 'contact' in href_link or 'faq' in href_link or 'terms' in href_link or 'log' in href_link:
continue
最好在一條線上......我在哪裏看?
使用內置any
:
items = ('legal', 'disclaimer', 'contact', 'faq', 'terms', 'log')
if any(x in href_link for x in items):
continue
可以使用迭代直接any
有一個真正的一行,但隨後其更具可讀性這種方式。
你可以建立一個正則表達式。我不確定效率,你必須與@ MosesKoledoye的很好的答案進行比較。
要匹配您使用管道|
的替代方案。你需要像legal|disclaimer|contact|faq|terms|log
這樣的模式。
您可以通過使用這些值連接字符串'|'
構建:
>>> values = {'legal', 'disclaimer', 'contact', 'faq', 'terms', 'log'}
>>> pattern = '|'.join(values)
>>> pattern
'terms|log|faq|legal|contact|disclaimer'
使用re
(正則表達式)模塊:
>>> import re
>>> href_link = 'link_to_disclaimer.html'
>>> if re.search(pattern, href_link):
... print('matches')
matches
@ MosesKoledoye的答案可能是你最好的一個:它肯定會使更好的代碼將六個統一測試集中到一個迭代中。
但是你可能會問「我怎樣才能打破長條件以適應79個字符?」。換句話說,您可能一直在詢問代碼格式,而不是如何編寫代碼。在這種情況下,我的首選答案是格式化它是這樣的:
if (a in b or
c in d or
e not in f or
g not in h):
continue
謝謝... @ MosesKoledoye的答案更適合...但如果不可避免的,這是一個很好的方式來分割,以避免違反pylint –
謝謝!只要我被允許,我會立刻起來! –
對不起,只是一個初學者,不能完全在網上搜索它 –