1 回答

TA貢獻1770條經驗 獲得超3個贊
您沒有多個鍵。在您的示例中,您的鍵是元組('Michael', 'Student', 'marks obtained')
(順便說一句,您的字典語法是錯誤的:它應該{('Michael', 'Student', 'marks obtained') : 40}
基于您的意思)。
如果可以保證沒有兩個學生有相同的名字(也許您可能包括姓氏和中間名字的首字母?。?,那么您可以僅使用他們的名字作為關鍵字。然后,將值設為元組將是有意義的(matriculation, marks obtained)
。像這樣:{"Michael" : ('Student', 40)}
。
當您想打印這些學生時,您可能會說print name, students[name][0], "no", students[name][1]
,students
您的字典在哪里,name
是一個字符串,它是學生的名字,例如'Michael'
。
除了'Student'
順便說一句,我不確定還有什么可以入學的。在我看來,您不需要包括該值,除非您實際上可以具有其他值。
這里的一個很好的隱喻是認為'Michael'
與他相關的一些數據,即他的入學狀態和獲得的分數數量。入學狀態既不'Michael'
與之相關(特別是),也沒有'Michael'
與之相關的40個分數(尤其是),因為這些事情可能發生在其他人身上。因此,正確的密鑰是學生的姓名。鍵應該是唯一的-當它們不是唯一鍵時,您會遇到稱為沖突的問題,其中兩個或多個數據(值)與同一事物(鍵)相關聯。
大編輯:
在查看了您編輯過的帖子后,看來您的密鑰實際上應該是入學號,因為它永遠不會相同。因此,現在您的字典應該是{matriculation_no : (name, marks)}
。現在print students[matriculation_no][0], "Admission", matriculation_no, students[matriculation_no][1]
就是打印或類似的東西。這取決于您是否要"Admission"
在字符串中輸入。
如果要寫入文件,請file.write()
改用。
添加回答
舉報