我正在尝试创建一个将接受输入的程序,查看这些单词中的任何一个是否是先前定义的字典中的键,然后将所有找到的单词替换为其条目。硬位是“看看单词是否是键”。例如,如果我正在尝试替换此词典中的条目:
dictionary = {"hello": "foo", "world": "bar"}
如果输入“hello world”,我怎么能打印“foo bar”?
答案 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)