如何查找列表的一部分是否在str中

时间:2015-12-15 21:53:45

标签: python loops

我正在努力做一名检查员。而不是做

bars

我想这样做,以便我可以有一个包含所有单词的列表,并且可以检查这些单词是否在列表中。注意:如果你使用"如果有的话......"代码,有一个while循环,它有太多的输出要处理。

3 个答案:

答案 0 :(得分:14)

您可以使用any加上生成器:

cursewords = ['javascript', 'php', 'windows']
if any(curseword in input for curseword in cursewords):
    print 'onoes'

或者,为了更灵活一点,一个正则表达式(如果你想做像检测大写诅咒词这样的东西):

if re.search(r'javascript|php|windows', input, re.IGNORECASE):
    print 'onoes'

(如果您是regex的新手,the Python docs have got a nice tutorial。)

如果你只想忽略大小写而不搞乱regexen,你也可以这样做:

# make sure these are all lowercase
cursewords = ['javascript', 'php', 'windows']
input_lower = input.lower()
if any(curseword in input_lower for curseword in cursewords):
    print 'onoes'

答案 1 :(得分:1)

在输入上使用for循环并检查每个单词以查看它是否在诅咒词列表中。

cursewordList = ['a','b' ...]

for word in input:
    if word in cursewordList:
          print "No cursing! It's not nice!"

答案 2 :(得分:0)

使用,过滤内置方法:

>>>test = ['ONE', 'TWO', 'THREE', 'FOUR']
>>>input = 'TWO'

>>> if filter(lambda s: s in input, test):
    print 'OK'


OK
>>> input = 'FIVE'
>>> 
>>> if filter(lambda s: s in input, test):
    print 'OK'


>>> #nothing printed