用值替换Dict键?

时间:2018-08-23 05:46:31

标签: python

例如,字典可能是

{'Cat': 'Dog', 'Bird': 'Mouse'}

当用户输入 “有一只猫” 输出将是 “有一只狗”

我尝试将其替换为值,但显然不适用于dict。 请帮忙。

5 个答案:

答案 0 :(得分:2)

给定一对<key:value>,您只需访问dict索引中的key即可获得value

d = {'Cat': 'Dog', 'Bird': 'Mouse'}
user_input = 'There is a cat'
# use split() to split string into words
# use [-1] to get last word ('cat')
#print(d[user_input.split()[-1]]) # would fail, since "cat" isn't inside the dict
user_input = 'There is a Cat'
print("There is a", d[user_input.split()[-1]]) # This time it would work. Output "There is a Dog"

答案 1 :(得分:1)

您需要遍历dict内的键并检查给定的输入。如果存在,则可以将其替换为相应的值。

d = {'Cat': 'Dog', 'Bird': 'Mouse'}
inp = 'There is a Cat'

for key,value in d.items():
  if key in inp:
    inp = inp.replace(key,value)

print(inp)
'There is a Dog'

请注意,条件区分大小写。如果要查找不区分大小写的检查,则可以使用str.lower()将字符串转换为相同的大小写。

答案 2 :(得分:1)

''.join加入一个字符串拆分的字典get方法:

d = {'Cat': 'Dog', 'Bird': 'Mouse'}
s='There is a cat'
s2=' '.join(d.get(i.title(),i) for i in s.split())
print(s2)

输出:

There is a Dog

答案 3 :(得分:0)

您可以将字符串拆分为单词,如果单词是索引,则用dict中的相应值替换每个单词,然后将单词连接成字符串:

d = {'Cat': 'Dog', 'Bird': 'Mouse'}
s = 'There is a Cat'
print(' '.join(d.get(w, w) for w in s.split()))

这将输出:

There is a Dog

答案 4 :(得分:0)

这里是一线。

d = {'cat': 'dog', 'bird': 'mouse'}
input_ = 'There is a cat'
output = ' '.join([x if x not in d else d[x] for x in input_.split()])

>> print (output)
>> There is a dog

BREAK DOWN

input_.split()将输入分成单词列表。

[ ]创建一个新列表

对于输入字符串中的每个单词

for x in input_.split()

x if x not in d添加所有在字典中找不到的单词。

else d[x]用于dic中找到的任何单词,而不是添加该单词,而是添加dict中的相应值

' '.join([])将列表中的所有单词连接在一起,每个单词之间都有一个空格。