Skip to main content
 首页 » 编程设计

python之检查 Python 列表项是否包含另一个列表中的字符串

2025年05月04日43kuangbin

我正在尝试通过为我的工作开发一些 CLI 工具来学习 Python。

我有两个域列表,一个“去重”包含我从文本文件加载的完整域,另一个“毒”包含一些与某些域部分匹配的字符串。

deduplicated = ['facebook.com','google.com','en.wikipedia.org','youtube.com','it.wikipedia.org'] 
 
poison = ['youtube','wikipedia'] 

我正在尝试匹配字符串的“毒”列表以获得两个新列表,一个“干净”(与毒列表不匹配的域)和一个“脏”(已部分匹配)匹配”)。

这是我的尝试,但没有用...

clean = [] 
 
dirty = [] 
 
for item in deduplicated: 
    if (any(poison in word for word in deduplicated)): 
    print ("useless domain %s" % item) 
    dirty.append(item) 
else: 
    print ("nice domain %s" % item) 
    clean.append(item) 

更新:

编辑了代码,因为格式很丑。

为了将来引用,我得到的错误是:

TypeError: 'in ' requires string as left operand, not list

请您参考如下方法:

因为外层循环已经遍历了deduplicated,你需要内层循环遍历poison:

if any(search in item for search in poison): 
    print("Useless domain", item)