有没有更好的方式来写这样的事情?更简单的方法来写这坚持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 –
谢谢!只要我被允许,我会立刻起来! –
对不起,只是一个初学者,不能完全在网上搜索它 –