我有以下代码:
sent = 'My name is Karen and I drive a black car.'
l = ['Karen', 'black']
print all(words in l for words in sent)
当我认为它会返回true时,这段代码返回False。我很困惑为什么。有人可以向我解释发生了什么事吗?谢谢!
答案 0 :(得分:1)
这里有两个问题:
str.split
l
中的所有字词是否都在sent
中的字词列表中。反之亦然。通过以上更改,您的代码将是:
>>> sent = 'My name is Karen and I drive a black car.'
>>> words = sent.split()
>>> l = ['Karen', 'black']
>>>
>>> all(word in words for word in l)
True
答案 1 :(得分:0)
您正在遍历字符串sent
,该字符串将从该字符串中获取每个字符。你必须迭代l
中的单词:
all(i in sent for i in l)
答案 2 :(得分:0)
您正在重复错误的列表并检查错误的项目
all(word in sent for word in l)