字典词库替换子串

时间:2017-12-09 20:03:14

标签: string list dictionary replace

所以我有一个包含单词及其同义词的字典。目的是用随机同义词替换字符串中的子串。这是我的代码。

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

我理解逻辑中的错误但不确定如何修复它。

1 个答案:

答案 0 :(得分:0)

关键是只替换一次。 replace()函数有3个参数,第三个是要替换的出现次数。 所以:

phrase = phrase.replace(x,str.upper(thesaurus[x][ranlis]),1)