如果程序包含列表中的一个字符串,则程序不会显示该字符串
Program won't display string if it contains one string from list
我想过滤一些我得到的字符串。例如我有这个字符串:
str = "I just go on Facebook today"
像这样的禁用词列表:
banned_words = ["facebook", "Facebook", "Netflix"]
我怎样才能做这样的事情:"If none of the banned words are in the string",以便我可以处理字符串?
通过一些搜索,我找到了函数 any
并尝试类似的东西:
if any(word not in str for word in banned_words):
但根本不起作用:/
您应该使用以下
if not any(word for word in banned_words if word in str):print(1)
注意:切勿使用关键字作为变量名。这里 str
是关键字。所以,我建议你使用一些其他的变量名
您可以将 in
与 for 循环一起使用
所以它是这样工作的
s = "I just go on Facebook today"
banned_words = ["facebook", "Facebook", "Netflix"]
exist = False
for word in banned_words:
if (word in s):
print('banned words "{}" found in str'.format(word))
exist = True
break
if (not exist):
print ('Banned words not found in str')
输出:
banned words "Facebook" found in str
如果banned_words
有很多项,您可以将它从list
转换为set
。并检查句子中的所有单词是否不在 banned_words
:
中
banned_words = set(["facebook", "Facebook", "netflix"])
if all(word not in banned_words for word in sentence.split()):
pass
如果您只是想知道您的字符串中没有包含哪个单词,请尝试以下方式:
your_str = "I just go on Facebook today"
banned_words = ["facebook", "Facebook", "Netflix"]
[word for word in banned_words if word not in your_str]
你应该得到如下结果:
['facebook', 'Netflix']
如果您想知道您的字符串中有哪个单词相同:
[word for word in banned_words if word in your_str]
['Facebook']
你想用any
来检测它是否存在,那可不是个好办法!应该检查结果里面的内容! any
只是 bool
的检查器,因为它的名字暗示 any([True, False, False])
将 return False
,但在这里你可以看到我们只有 [=18] =] 类型。所以无论你如何尝试,总是 return True
.
>>> any(['a', 'b','c'])
True
我想过滤一些我得到的字符串。例如我有这个字符串:
str = "I just go on Facebook today"
像这样的禁用词列表:
banned_words = ["facebook", "Facebook", "Netflix"]
我怎样才能做这样的事情:"If none of the banned words are in the string",以便我可以处理字符串?
通过一些搜索,我找到了函数 any
并尝试类似的东西:
if any(word not in str for word in banned_words):
但根本不起作用:/
您应该使用以下
if not any(word for word in banned_words if word in str):print(1)
注意:切勿使用关键字作为变量名。这里 str
是关键字。所以,我建议你使用一些其他的变量名
您可以将 in
与 for 循环一起使用
所以它是这样工作的
s = "I just go on Facebook today"
banned_words = ["facebook", "Facebook", "Netflix"]
exist = False
for word in banned_words:
if (word in s):
print('banned words "{}" found in str'.format(word))
exist = True
break
if (not exist):
print ('Banned words not found in str')
输出:
banned words "Facebook" found in str
如果banned_words
有很多项,您可以将它从list
转换为set
。并检查句子中的所有单词是否不在 banned_words
:
banned_words = set(["facebook", "Facebook", "netflix"])
if all(word not in banned_words for word in sentence.split()):
pass
如果您只是想知道您的字符串中没有包含哪个单词,请尝试以下方式:
your_str = "I just go on Facebook today"
banned_words = ["facebook", "Facebook", "Netflix"]
[word for word in banned_words if word not in your_str]
你应该得到如下结果:
['facebook', 'Netflix']
如果您想知道您的字符串中有哪个单词相同:
[word for word in banned_words if word in your_str]
['Facebook']
你想用any
来检测它是否存在,那可不是个好办法!应该检查结果里面的内容! any
只是 bool
的检查器,因为它的名字暗示 any([True, False, False])
将 return False
,但在这里你可以看到我们只有 [=18] =] 类型。所以无论你如何尝试,总是 return True
.
>>> any(['a', 'b','c'])
True