python检查列表项是否为字符串

python检查列表项是否为字符串,python,Python,我想检查链接是否包含错误域中的单词 为什么总是打印“传递此url”? link中没有google、facebook或twitter 我尝试像link.find('google') 它将返回-1。那么有什么问题 请帮我检查我的逻辑。谢谢你bool(-1)在Python中是True。您可以执行以下操作,而不是查找: link = 'http://dedegood.com' wrongdomain = ['google','facebook','twitter'] if any(link.find

我想检查
链接
是否包含
错误域中的单词

为什么总是打印“传递此url”?
link
中没有google、facebook或twitter
我尝试像
link.find('google')

它将返回-1。那么有什么问题

请帮我检查我的逻辑。谢谢你

bool(-1)
在Python中是
True
。您可以执行以下操作,而不是查找:

link = 'http://dedegood.com'
wrongdomain = ['google','facebook','twitter']


if any(link.find(i) for i in wrongdomain):
    print 'pass this url'
else:
    print 'good'

请记住,它还将匹配url的其余部分,而不仅仅是域。

您的方法不会像
url那样正常工作http://dedegood.com/google
。所以你可以用这样的东西

if any(domain in link for domain in wrongdomain):

因为您只想检查url,所以可以使用此url。它不是检查所有链接,而是只检查网站名称。因此,如果任何url像
http://dedegood.com/google
不会有问题。

您想知道url的域是否位于错误的域中吗?我建议您可以这样做以获得更好的性能:

link = 'http://dedegood.com'
wrongdomain = ['google','facebook','twitter']

a=link.split("//")
b=a[1].split(".")
if any(domain in b[0] for domain in wrongdomain):
     print ('pass this url')
else:
    print ('good')

您可以查看tldextract,这是一个旨在从url获取域的库。

好的,非常感谢。
import urlparse
import tldextract

link = 'http://dedegood.com'
wrongdomain = ['google','facebook','twitter']
parsed = tldextract.extract(link)
if parsed.domain in wrongdomain:
    print 'pass this url'
else:
    print 'good'