0

Pythonを使用して文字列と一致するフレーズがあるかどうかをテストするPythonプログラムを作成したいと思います。

string ='I love my travel all over the world'
list =['I love','my travel','all over the world']

そのため、'I love' または 'my travel','all over the world' を印刷できる文字列に一致するリストがあれば、テキストを送信したいと考えています。

any(x in string for x in list)

または、問題を解決するためにテキスト マイニングを使用する必要がありますか?

4

4 に答える 4

0

find完全を期すために、次の方法について言及できます。

_string ='I love my travel all over the world'
_list =['I love','my travel','all over the world','spam','python']

for i in range(len(_list)):
    if _string.find(_list[i]) > -1:
        print _list[i]

どの出力:

I love
my travel
all over the world

注: このソリューションは、前述の使用方法ほど洗練されていませんが、見つかった部分文字列 の位置inが必要な場合に役立つ場合があります。

于 2015-03-27T09:13:49.597 に答える
0

あなたはこれを行うことはできません:

if any(x in string for x in word_list)
    print x

関数はany文字列/リスト全体を反復処理し、変数を破棄してから、単純にブール値 (または)xを返すためです。TrueFalse

ただし、関数を分解してany、目的の出力を得ることができます。

string ='I love traveling all over the world'
word_list =['I love','traveling','all over the world']

for x in word_list:
    if x in string:
        print x

これは出力されます:

>>>
I love
traveling
all over the world
>>>

次を使用して更新しstring.split()ます。

string =['I', 'love','traveling','all', 'over', 'the', 'world']
word_list =['I love','traveling','all over the world']
count=0
for x in word_list:
    for y in x.split():
        if y in string:
            count+=1
            if count==len(x.split()) and (' ' in x) == True:
                print x
    count=0

これは出力されます:

>>> 
I love
all over the world
>>> 
于 2015-03-26T16:39:07.883 に答える