[英]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.