簡體   English   中英

擴展時的字典KeyError

[英]Dictionary KeyError when extending

當用戶完成測驗時,我正在嘗試擴展字典。 我期待到最后三輪成績僅存儲用戶,但我得到一個KeyError ,當我嘗試將其添加到空字典和unhashable列表錯誤,當我嘗試實施比分為列表。

studentScores = {}

def quiz():
    print("WELCOME TO THE MATH QUIZ\n")
    global student
    student = input("What is your name? ")
    global classname
    classname = input("Which class are you in? (1, 2, 3) ")
    global score
    score = 0

def addDict():
    global student
    global classname
    global score
    score = str(score)
    studentScores[student + classname, score]
    print(studentScores)

如評論中所述,問題出在這條線上:

studentScores[student + classname, score]

這行的作用:它創建的元組 (student + classname, score)並使用元組作為重點字典。 並且由於該鍵不存在,因此引發了異常。

>>> student = "foo"
>>> classname = "bar"
>>> score = 0
>>> studentScores = {}
>>> studentScores[student + classname, score]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
KeyError: ('foobar', 0)

相反,您只想使用student + classname作為鍵,並為其分配 score的值。

>>> studentScores[student + classname] = score
>>> studentScores
>>> {'foobar': 0}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM