簡體   English   中英

如何檢查一個列表的一部分是否在另一個列表中

[英]How to check if part of one list is in another list

假設我有兩個列表,例如:

list_of_urls = ['https://en.wikipedia.org/wiki/Barack_Obama', 'https://en.wikipedia.org/wiki/President_of_the_United_States', 'google.com']

list_of_blacklisted_urls = ['wikipedia']

如果列入黑名單的 url 的任何部分在 list_of_urls 中,如何返回True 我試過了:

for url in list_of_urls:
        if any(URL in URLs for URL in list_of_blacklisted_urls):
                return True

但我很確定這行不通。

你很接近......但是any函數並沒有像你認為的那樣工作。 您必須改用嵌套循環。

下面是一個例子:

list_of_urls = ['https://en.wikipedia.org/wiki/Barack_Obama', 'https://en.wikipedia.org/wiki/President_of_the_United_States', 'google.com']

list_of_blacklisted_urls = ['wikipedia']

for url in list_of_urls:
    for keyword in list_of_blacklisted_urls:
        if keyword in url:
            print("FOUND", keyword, "in", url)
data = pd.DataFrame(list_of_urls)
data  = data[data[0].str.contains(*list_of_blacklisted_urls)]

然后你可以看到結果檢查數據。

這個怎么樣:

def in_black_urls():
    for black_url in list_of_blacklisted_urls :
        if black_url in list_of_urls:
            return True
    return False

只需一行,保持簡單:

len([x for x in list_of_urls if any(y in x for y in list_of_blacklisted_urls)]) > 0

您可以使用嵌套循環和 'in':

list_of_urls = ['https://en.wikipedia.org/wiki/Barack_Obama', 'https://en.wikipedia.org/wiki/President_of_the_United_States', 'google.com']
list_of_blacklisted_urls = ['wikipedia']

def checker(urls,blacklist):
    for url in urls:
        for URL in blacklist:
            if URL in url:
                print(True, url, URL)
            else:
                return False
checker(list_of_urls,list_of_blacklisted_urls)

使用嵌套列表理解:

def blacklisted(all_urls, blacklist):
  if len([word for url in all_urls for word in blacklist if word in url]) > 0:
    return True

暫無
暫無

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

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