簡體   English   中英

字符串。包含在 Python

[英]String.Contains in 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 the string MY_TEXT in it. If it has print it and break the loop
               print link['href']
               break

現在,我想即興編寫這段代碼來檢查 MY_TEXT1、MY_TEXT2 和 MY_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

但這沒有用。 我的意思是沒有語法/編譯/運行時錯誤。 也沒有 output。 我究竟做錯了什么?

您沒有告訴我們它不起作用的輸入。

第一個版本和第二個版本之間的一個明顯區別是第二個版本缺少.upper() 這是造成問題的原因嗎?

還不清楚為什么要用__contains__替換in ,但這無論如何都無關緊要。

寫這個更簡潔的方法是使用any()

    if link.has_key('href'):
        href = link['href'].upper()
        if any(x in href for x in a):
            print link['href']

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM