如何检查列表中的元素是否在字符串中

Adr*_*ian 4 python string if-statement element list

这个问题的反面(在列表中找到一个字符串)是如此受欢迎,以至于我无法找到我的问题的答案.

black_list = ["ab:", "cd:", "ef:", "gh:"]

for line in some_file:
    if ":" in line and black_list not in line:
        pass
Run Code Online (Sandbox Code Playgroud)

这显然不起作用.需要在列表上进行一些迭代才能返回true/false,但我不知道如何优雅地完成它.谢谢.

Zer*_*eus 6

内置any()函数可以在这里帮助您:

black_list = ["ab:", "cd:", "ef:", "gh:"]

for line in some_file:
    if ":" in line and not any(x in line for x in black_list):
        pass
Run Code Online (Sandbox Code Playgroud)

它也可以通过以下方式获得相同的效果all():

for line in some_file:
    if ":" in line and all(x not in line for x in black_list):
        pass
Run Code Online (Sandbox Code Playgroud)

...但我认为第一个更接近英语,因此更容易理解.