所以我有一个包含单词及其同义词的字典。目的是用随机同义词替换字符串中的子串。这是我的代码。
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
我希望它每次都打印一个不同的同义词(或者至少能够。我明白它是随机的)。 所以:
EST ECISTATIC BLISSFUL
我理解逻辑中的错误但不确定如何修复它。
答案 0 :(得分:0)
关键是只替换一次。 replace()函数有3个参数,第三个是要替换的出现次数。 所以:
phrase = phrase.replace(x,str.upper(thesaurus[x][ranlis]),1)