2017-03-02 73 views
-4

我想寫一個函數,當用戶輸入其值之一時打印字典的密鑰。如何通過用戶輸入值查找密鑰

我的字典是:

student = {c0952: [18, 'John', 'Smith'], 
      c0968: [24, 'Sarah', 'Kelly'] 
      } 

對於例如,如果用戶輸入「約翰」,那麼學生人數c0952打印。

謝謝!

+1

如果價值相等,您想做什麼?我懷疑只會有一個'約翰'。 – akg

+1

字典的要點是從一個關鍵字查找值,如果你想從人的名字中查找東西,那麼把這個名稱作爲關鍵字。 (可能作爲一個單獨的字典) –

+0

可能重複的[在字典中獲取鍵值](http://stackoverflow.com/questions/8023306/get-key-by-value-in-dictionary) –

回答

1

也許是這樣的:

student = { 'c0952': [18, 'John', 'Smith'], 
      'c0968': [24, 'Sarah', 'Kelly'] 
      } 

name_value = raw_input("value? ") 

for stu_num, names in student.iteritems(): 
    for name in names: 
     if name == name_value: 
      print stu_num 

或者,如akg mentioned,使用list comprehension一個班輪:

print [x for x in student.keys() if name_value in student[x]][0] 

演示:

價值?約翰
c0952

使用最多的答案從Get key by value in dictionary