2017-12-09 23 views
0

私は単語とその同義語を含む辞書を持っています。目的は、文字列の部分文字列をランダムな同義語に置き換えることです。ここに私のコードです。私は入力「幸せは幸せ」 出力された場合辞書のシソーラスの部分文字列を置換する

import random 
thesaurus = { 
       "happy":["glad", "blissful", "ecstatic", "at ease"], 
       "sad" :["bleak", "blue",  "depressed"] 
      } 
phrase = input("Enter a phrase: ") 
for x in phrase.split(): 

    if x in thesaurus: 
     ran = len(thesaurus[x]) 
     print(len(thesaurus[x])) 
     ranlis = random.randint(0,ran - 1) 
     phrase = phrase.replace(x,str.upper(thesaurus[x][ranlis])) 
print(phrase) 

は:。

ECSTATIC ECSTATIC ECSTATIC 

私はそれが毎回異なる同義語を印刷する(あるいは、少なくとも私はそれがあることを理解することができるようにしたいですランダム)。 だから:

恍惚至福のATが

を和らげるには、私は私のロジックのエラーを理解し、それを修正する方法がわからないと思います。

答えて

0

キーは、1つのオカレンスだけを置き換えることです。 replace()関数は3つのパラメータを取ります.3番目のパラメータは置換するオカレンスの数です。 So:

phrase = phrase.replace(x,str.upper(thesaurus[x][ranlis]),1) 
関連する問題