Python - 用字典中的条目替换字符串中的单词

时间:2013-12-10 18:51:22

标签: python input dictionary replace key

我正在尝试创建一个将接受输入的程序,查看这些单词中的任何一个是否是先前定义的字典中的键,然后将所有找到的单词替换为其条目。硬位是“看看单词是否是键”。例如,如果我正在尝试替换此词典中的条目:

dictionary = {"hello": "foo", "world": "bar"}

如果输入“hello world”,我怎么能打印“foo bar”?

4 个答案:

答案 0 :(得分:2)

不同的方法

def replace_words(s, words):
    for k, v in words.iteritems():
        s = s.replace(k, v)
    return s

s = 'hello world'
dictionary = {"hello": "foo", "world": "bar"}

print replace_words(s, dictionary)

答案 1 :(得分:1)

这适用于Python 2.x:

dictionary = {"hello": "foo", "world": "bar"}
inp = raw_input(":")
for key in inp.split():
    try:
        print dictionary[key],
    except KeyError:
        continue

但是,如果您使用的是Python 3.x,则需要这样:

dictionary = {"hello": "foo", "world": "bar"}
inp = input(":")
for key in inp.split():
    try:
        print(dictionary[key], end="")
    except KeyError:
        continue

答案 2 :(得分:1)

最干净的方法是,如果单词不在字典中,则使用dict.get回退到单词本身:

' '.join([dictionary.get(word,word) for word in 'hello world'.split()])

答案 3 :(得分:0)

假设“单词”是连续的字符序列,您可以在空格上分割输入,然后对每个单词检查它是否在字典中。

new_str = ""
words = your_input.split(" ")
for i in range(0, len(words)):
  word = words[i]
  if word in dictionary:
    words[i] = dictionary[word]

现在,您可以对最终的单词列表执行某些操作。例如,将它们连接在一起,用空格分隔

" ".join(words)