說我有以下的解釋:如何從Python 3中的字典中調用名稱?
mydict = {"3322": 4 , "3323": 3 , "3324": 5}
現在說我要打印「3323」,一旦用戶輸入3 什麼我這麼遠:
printer = input("please enter a number: ")
現在我不確定一旦用戶輸入3,如何使用「打印機」來打印3323.
說我有以下的解釋:如何從Python 3中的字典中調用名稱?
mydict = {"3322": 4 , "3323": 3 , "3324": 5}
現在說我要打印「3323」,一旦用戶輸入3 什麼我這麼遠:
printer = input("please enter a number: ")
現在我不確定一旦用戶輸入3,如何使用「打印機」來打印3323.
首先你的字典是「向後」,即你想使用一個鍵的實際存儲值是一個值,與字典理解:
mydict = {v:k for (k,v) in mydict.iteritems()}
那麼最好是捕捉用戶輸入一個while循環:
while 1:
key = input("please enter a number: ")
try:
if int(key) in mydict:
print mydict[int(key)]
break
else:
print "{n} not present!".format(n = key)
except ValueError:
print "please enter a number!"
這樣,如果用戶弄亂他們可以再次嘗試..
這對於Python 2來說是正確的。您將不得不做一些小的更改,以便它可以在Python 3上運行。此外,這還假設沒有值重複。 – dg123
既然你正在尋找密鑰(它必須是唯一的)與它們對應的的值(可以在字典中多次重複),有可能存在多於一個映射到給定值的結果鍵。
results = [k for k,v in mydict.items() if v == int(printer)]
當然,你可以全部打印出來,像這樣:
print('\n'.join(results))
這樣,所有的
幸運的是,我們可以使用列表解析找到所有的鑰匙找到的鍵將被打印(以換行符分隔),如果沒有找到,則不會打印任何內容。
您想查找匹配值的關鍵字。如果有多個具有相同匹配值的鍵,會發生什麼情況?如果沒有,會發生什麼? –