5

Python では、次のコンテキストが与えられたステートメントの構文は何ですか:

words = 'blue yellow'

words「青」という単語が含まれているかどうかを確認する if ステートメントでしょうか。すなわち、

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

次のものも使用できます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 に答える
5

in明示的なチェックを使用または実行できます。

if 'blue ' in words:
    print 'yes'

また

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

編集: これらの 2 つは、文が「青」で終わらない場合にのみ機能します。それを確認するには、以前の回答の1つが提案したことを行うことができます

if 'blue' in words.split():
    print 'yes'
于 2013-03-13T00:44:51.257 に答える
2

これを行う最も簡単な方法は、おそらく次のとおりです。

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

単語リストが非常に大きい場合は、セット メンバーシップをテストする方がリスト メンバーシップをテストするよりも計算効率が高いため、ラップwords.split()インすることで速度が向上します。set

于 2013-03-13T01:01:30.753 に答える