Python中all()函数正确用法:判断列表元素均不在字符串中
解决方案
单行代码实现如下:
all(x not in s for x in l)
错误原因说明
你之前的代码all(x for x in l if x not in s)逻辑有误:当列表中存在元素在字符串里时,if x not in s会过滤掉这些元素,导致传入all()的是一个空的生成器。而Python中all()函数对空可迭代对象默认返回True,这就导致你两次都得到了不符合预期的结果。
正确的写法是直接将x not in s作为生成器的表达式,让all()检查列表中每一个元素是否都满足“不在字符串中”的条件。
内容的提问来源于stack exchange,提问作者dartigan
相关产品推荐
相关产品推荐

