1

Python im では、次を使用してセンテンス内の単語を見つけようとしています。

if word in sentence:
    number = number + 1

これは、文中の単語を見つけるのにうまく機能します。私が直面している問題は、このコードが他の単語内の単語を見つけることです。例えば:

word = "or"
sentence = "Python or Java use a lot of words"
if word in sentence:
    number = number + 1

「または」は「Python」の後、「Java」の前にあるため、数値は1ではなく2になり、「単語」という単語にも「または」が含まれるため、「または」という単語だけを見つける方法を見つけようとしていますプログラムが文や別の単語でそれを見つけるのではなく、それ自体。

4

3 に答える 3

6
"Python or Java use a lot of words".lower().split().count('or')

するべきです。

lower はすべてのテキストを小文字に変換し、split はそれをリスト (デフォルトの区切り文字はスペース) に変換し、count はリストに対してカウントを行います。

于 2013-11-01T19:09:22.687 に答える
1

最初に次を使用して文を分割する必要がありますstr.split

>>> sentence = "Python or Java use a lot of words"
>>> sentence.split()
['Python', 'or', 'Java', 'use', 'a', 'lot', 'of', 'words']
>>>

これにより、単語のリストが表示されます。その後、コードは機能します。

>>> # I made this so I didn't get a NameError
>>> number = 0
>>> word = "or"
>>> sentence = "Python or Java use a lot of words"
>>> if word in sentence.split():
...     # This is the same as "number = number + 1"
...     number += 1
...
>>> number
1
>>>
于 2013-11-01T19:08:32.770 に答える
0

最初に分割してみることができます。sentence

if word in sentence.split(" "):

sentenceすべての単語が単一のスペースで区切られていると仮定すると、これは単語の配列に分割されます。これは、

if word in [ "Python", "or", "Java", "use", "a", "lot", "of", "words" ]:

元の部分文字列をチェックするのではなく、単語全体がリストに存在するかどうかをチェックしますsentence

于 2013-11-01T19:08:28.150 に答える