检查Python列表项是否在另一个lis中包含字符串

2024-06-16 14:25:13 发布

您现在位置:Python中文网/ 问答频道 /正文

我正试图通过开发一些CLI工具来学习python。在

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

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

poison = ['youtube','wikipedia']

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

这是我的尝试,但没用。。。在

^{pr2}$

更新

编辑了代码,因为格式不好。在

为了将来参考,我得到的错误是:

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


Tags: 工具字符串orgcom列表clifacebookyoutube
2条回答

由于外部循环已经循环到deduplicated,因此需要内部循环来循环poison

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

如果我没弄错,你想做的是:

dirty = [word for word in deduplicated if any(unwanted in word for unwanted in poison)]
clean = [word for word in deduplicated if word not in dirty]

print(dirty) # => ['en.wikipedia.org', 'youtube.com', 'it.wikipedia.org']
print(clean) # => ['facebook.com', 'google.com']

你的代码现在有两个人的问题:

  • 迭代items,但在检查中不使用它们
  • 你的压痕弄乱了。Python对空白敏感

相关问题 更多 >