2011-11-05 90 views
2

我有一個功能,要求該人的姓名,然後打印他們的年齡,但我有麻煩進入if語句,它總是跳過它。搜索字典中的人的年齡

我的字典印像這樣在命令行上:{( '名', '子名稱'):19)}

l_name = raw_input("Enter last name") 
f_name = raw_input("Enter first name") 
if (l_name, f_name) in my_dict.items(): 
    age = my_dict[l_name,f_name] 
    print age 

在此先感謝

+0

我只是做了我注意到,這是不對的這些變化,但仍犯規進入if語句 – user998316

+1

難道你的訂單混淆了嗎?如果你的意思是_surname_而不是_subname_,那麼你在查找帶有('first name','last name')元組的字典中找到('last name','first name')。 – Vlad

+0

我懷疑你的字典是否打印出這樣的'{('name','subname'):19)},因爲這是無效的Python(不匹配的圓括號)。 –

回答

3

試試這個:

if (l_name, f_name) in my_dict: 

看到它在線工作:ideone

+0

是的你是正確的我沒有注意到,但它仍然跳過if語句 – user998316

+0

@ user998316:我已鏈接到ideone,你可以看到它的作品。也許你輸入了不正確的值? –

+0

是的,你是對的,即時通訊抱歉,我沒有注意到我有我的if語句中的項目()。 – user998316

0

你非常接近。只需使用元組來執行查找,而不是使用

這裏是工作代碼:

age_dict = dict([ 
    (('tom', 'hanks'), 55), 
    (('al', 'pacino'), 71), 
]) 

l_name = raw_input("Enter last name: ") 
f_name = raw_input("Enter first name: ") 
if (l_name, f_name) in age_dict: 
    age = age_dict[l_name,f_name] 
    print age 

,給出了一個用戶會話是這樣的:

Enter last name: al 
Enter first name: pacino 
71