如何检查python中包含的列表中的项目

cha*_*dru 1 python string list special-characters

我有两个清单,

my_list = ['on@3','one',"$", "lo#"]
spl = ["@","$"]
Run Code Online (Sandbox Code Playgroud)

我正在尝试获取“ my_list”中的项目,其中包含spl中的任何项目。

我试过了

out_list = [item for item in my_list if item.contains("!".join(spl))]
Run Code Online (Sandbox Code Playgroud)

但这会带来错误。

我的预期输出是

out_list = ["on@3","$"]
Run Code Online (Sandbox Code Playgroud)

Mos*_*oye 5

没有这样的方法item.contains。有item.__contains__,但您无需直接调用它。

您要检查项目中是否包含任何spl项目,请使用内置功能any

lst = [item for item in my_list if any(x in item for x in spl)]
# ...                           if any(item.__contains__(x) for x in spl)]
print(lst)
# ['on@3', '$']
Run Code Online (Sandbox Code Playgroud)