我有此词典:字典模式匹配误差
mydict = {'greet': ['Hello123','hi45'],
'say': 'thankyou789',
'slang': ['Bmyguest','Bmyfriend']}
我想获取基于部分匹配的用户输入,该键例如:
如果用户输入'Brightback'
,我应该返回'slang'
因为只有'slang'
包含以'B'
开头的条目。如果用户输入'Hello'
或'hi'
,我应该返回'greet'
。
input="Brightback"
for key, value in mydict.iteritems():
if input.startswith(value):
print key
这给了错误:
TypeError: startswith first arg must be str, unicode, or tuple, not list
'value'是一个列表,所以你需要遍历太 – 2015-02-24 12:02:05
如果你使用startswith(值),也不会返回true刚刚开始因为两个单词都以B开头。input.startswith(value)的作用是检查'input'是否以'value'开头。所以如果你有'Bandit'作为输入,'Bmyguest'作为值,它返回false。如果输入是'BmyguestBandit',它将返回true,因为现在输入确实是以(value)开始的。 – Philipp 2015-02-24 12:06:28
@ Philipp这是下一个问题(c: – 2015-02-24 12:15:39