我有此詞典:字典模式匹配誤差
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