您沒有多個密鑰。在你的例子中,你的關鍵是元組('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()
代替。
這不是一個有效的字典.. –
詞典有1個鍵和1個值。您的值可能包含列表或元組,但您可能沒有超過1個鍵。 – wflynny
感謝Brendan和Bill @Bill:現在我明白了不同,我很長時間以來一直困惑着我。謝謝:) –