5

在 Python 中,给定以下上下文的语句的语法是什么:

words = 'blue yellow'

将是一个 if 语句,用于检查是否words包含单词“blue”?IE,

if words ??? 'blue':
    print 'yes'
elif words ??? 'blue':
    print 'no'

在英语中,“如果单词包含蓝色,则说是。否则,打印否。”

4

4 回答 4

11
words = 'blue yellow'

if 'blue' in words:
    print 'yes'
else:
    print 'no'

编辑

我刚刚意识到这nightly blues将包含blue,但不是一个完整的词。如果这不是您想要的,请拆分单词表:

if 'blue' in words.split():
    …
于 2013-03-13T00:39:46.473 回答
5

您可以使用in或执行显式检查:

if 'blue ' in words:
    print 'yes'

或者

if words.startswith('blue '):
    print 'yes'

编辑:只有当句子不以“蓝色”结尾时,这两个才有效。要检查这一点,您可以执行先前答案之一的建议

if 'blue' in words.split():
    print 'yes'
于 2013-03-13T00:44:51.257 回答
5

您还可以使用regex

\bblue\bTrue仅当它可以找到确切的单词时才会返回'blue',否则False

In [24]: import re

In [25]: strs='blue yellow'

In [26]: bool(re.search(r'\bblue\b',strs))
Out[26]: True

In [27]: strs="nightly blues"

In [28]: bool(re.search(r'\bblue\b',strs))
Out[28]: False
于 2013-03-13T00:51:24.820 回答
2

最简单的方法可能如下:

words = set('blue yellow'.split())
if 'blue' in words:
    print 'yes'
else:
    print 'no'

如果你的单词列表真的很大,你会通过包裹words.split()来提高速度,set因为测试集成员比测试列表成员在计算上更有效。

于 2013-03-13T01:01:30.753 回答