如何迭代文本并用字典值替换某些单词

时间:2014-06-24 20:21:21

标签: python dictionary

我想创建一些搜索句子的东西,并取出你想要的任何单词并用替代品切换它们。这是我到目前为止所得到的,但它只返回没有而不是句子

def testing ():
    test_dic = {'dog' : 'Censored'}
    text = raw_input('Input your sentence here: ').lower()
    text = text.join(" ")

    for words in text:
        if words in test_dic:
            for i, j in test_dic.iteritems():
                clean_text = text.replace(i, j)
            return clean_text

我是python的新手,所以这可以解释我是否试图以错误或非pythonic方式进行。有人能帮助我吗?

2 个答案:

答案 0 :(得分:1)

这是使用列表理解的方法:

def testing ():
   test_dic = {'dog' : 'Censored'}
   text = raw_input('Input your sentence here: ').lower()

   return ' '.join([test_dic.get(word, word) for word in text.split()])

答案 1 :(得分:0)

您使用的join可能意味着split。你在字典中也有一个无关的循环。以下代码将遍历每个单词并保留或替换它,具体取决于它是否作为字典中的键存在。

def testing ():
    test_dic = {'dog' : 'Censored'}
    text = raw_input('Input your sentence here: ').lower()
    text = text.split(" ")

    new_text = []
    for word in text:
        if word in test_dic:
            new_text.append(test_dic[word])
        else:
            new_text.append(word)
    return " ".join(new_text)

print testing()