Python中的String.Contains

Python中的String.Contains,python,Python,我有一个这样的代码 if active == 1: // A flag which is set if a Site is Active for link in BeautifulSoup(content, parseOnlyThese=SoupStrainer('a')): if link.has_key('href'): if 'MY_TEXT' in link['href'].upper(): //Check if the link has t

我有一个这样的代码

if active == 1: // A flag which is set if a Site is Active
    for link in BeautifulSoup(content, parseOnlyThese=SoupStrainer('a')):
        if link.has_key('href'):
           if 'MY_TEXT' in link['href'].upper(): //Check if the link has the string MY_TEXT in it. If it has print it and break the loop
               print link['href']
               break
现在,我想即兴编写这段代码来检查我的_TEXT1、我的_TEXT2和我的_TEXT3。我不想写太多的IF语句。相反,我做了类似的事情

a = ['MY_TEXT1', 'MY_TEXT2', 'MY_TEXT3']

if active == 1: // A flag which is set if a Site is Active
    for link in BeautifulSoup(content, parseOnlyThese=SoupStrainer('a')):
        if link.has_key('href'):
            for x in a:
                if link['href'].__contains__(x):
                    print link['href']
                    break

但这并不奏效。我的意思是没有语法/编译/运行时错误。也没有输出。我做错了什么?

您没有告诉我们它不起作用的输入

第一个版本和第二个版本之间的一个明显区别是第二个版本中缺少
.upper()
这就是问题的原因吗?


也不清楚为什么要将中的替换为\uuuuuu包含,但这两种方法都不重要。

编写这篇文章的更简洁的方法是使用
any()


如果链接['href'].upper()中的x与以前一样,为什么不
?我在这里的回答可能会帮助你:你是正确的!在第2版中,我遗漏了upper()。谢谢
    if link.has_key('href'):
        href = link['href'].upper()
        if any(x in href for x in a):
            print link['href']