例如,字典可能是
{'Cat': 'Dog', 'Bird': 'Mouse'}
当用户输入 “有一只猫” 输出将是 “有一只狗”
我尝试将其替换为值,但显然不适用于dict。 请帮忙。
答案 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([])
将列表中的所有单词连接在一起,每个单词之间都有一个空格。