因此,我分別為課程名稱和學生 ID 創建了一個鍵值對字典。我希望能夠遍歷字典并列印包含特定值(學生 ID)的所有鍵(課程名稱)。
因此,這是變數的第一次初始化,然后是要求用戶輸入學生 ID。他們可以從 1001-1004 中進行選擇。
def main():
c_roster = {'CSC101': ['1004', '1003'],
'CSC102': ['1001'],
'CSC103': ['1002'],
'CSC104': []}
id_ = input('What is the student ID? ')
list_courses(id_, c_roster)
在這里,我正在遍歷字典視圖并創建一個值與 id_ 變數匹配的鍵串列,然后列印該串列。但是,無論我選擇哪個學生證,它都會一直給我列印一個空串列。為什么會這樣?
def list_courses(id_, c_roster):
print('Courses registered:')
c_list = [k for k, v in c_roster.items() if id_ == v]
print(c_list)
main()
uj5u.com熱心網友回復:
串列理解k, v in c_roster.items()回傳k, v對,即k課程名稱和為該課程v注冊的學生 ID 串列。
因此,您將 IDid_與學生 ID 串列進行比較,這永遠不會是真的。
你必須看看是否id_在v,比如
c_list = [k for k, v in c_roster.items() if id_ in v]
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/532893.html
標籤:Python列表字典
上一篇:使用字典中的值過濾資料框
