2013-10-23 64 views
0

說我有以下的解釋:如何從Python 3中的字典中調用名稱?

mydict = {"3322": 4 , "3323": 3 , "3324": 5} 

現在說我要打印「3323」,一旦用戶輸入3 什麼我這麼遠:

printer = input("please enter a number: ") 

現在我不確定一旦用戶輸入3,如何使用「打印機」來打印3323.

+0

您想查找匹配值的關鍵字。如果有多個具有相同匹配值的鍵,會發生什麼情況?如果沒有,會發生什麼? –

回答

0

首先你的字典是「向後」,即你想使用一個鍵的實際存儲值是一個值,與字典理解:

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!" 

這樣,如果用戶弄亂他們可以再次嘗試..

+0

這對於Python 2來說是正確的。您將不得不做一些小的更改,以便它可以在Python 3上運行。此外,這還假設沒有值重複。 – dg123

1

既然你正在尋找密鑰(它必須是唯一的)與它們對應的的值(可以在字典中多次重複),有可能存在多於一個映射到給定值的結果鍵。

results = [k for k,v in mydict.items() if v == int(printer)] 

當然,你可以全部打印出來,像這樣:

print('\n'.join(results)) 

這樣,所有的

幸運的是,我們可以使用列表解析找到所有的鑰匙找到的鍵將被打印(以換行符分隔),如果沒有找到,則不會打印任何內容。