所以我有一本包含单词和它们的同义词的字典。目的是将字符串中的子字符串替换为随机同义词。这是我的代码。
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)如果我输入" happy“,输出是:
ECSTATIC ECSTATIC ECSTATIC我希望它每次打印一个不同的同义词(或者至少能够。我知道这是随机的)。所以:
欣喜若狂,轻松自在
我理解我的逻辑中的错误,但不确定如何修复它。
发布于 2017-12-10 04:35:29
关键是只替换一个匹配项。replace()函数接受3个参数,第三个参数是要替换的匹配项的数量。所以:
phrase = phrase.replace(x,str.upper(thesaurus[x][ranlis]),1)https://stackoverflow.com/questions/47732645
复制相似问题