Pythonic方法从字符串中的列表中查找任何项目

问题很简单.我正在编写一个函数,如果该字符串包含任何非法名称,则返回true.

line是一个字符串.

illegal_names是一个可迭代的.

def has_illegal_item(line, illegal_names):
    illegal_items_found = False
    for item in illegal_names:
        if item in line:
            illegal_items_found = True
            break
    return illegal_items_found

所以这很好用,但看起来有点笨拙和啰嗦.任何人都可以建议一个更整洁,更pythonic的方式来写这个?我可以使用列表解析还是正则表达式?

最佳答案

any(name in line for name in illegal_names)
点赞