2 回答

TA貢獻1775條經(jīng)驗 獲得超11個贊
字典按鍵查找值,而不是按值查找。在scores.keys()
返回字典的按鍵,而scores.values()
回報值。然后scores[key]
使用鍵獲取值,因此在這種情況下,分數(shù)字典沒有鍵Zack
。相反,Zack
是一個值。

TA貢獻1836條經(jīng)驗 獲得超3個贊
當您切換scores.keys()到 時scores.values(),現(xiàn)在該變量each不會像以前那樣存儲分數(shù)(數(shù)字)。相反,它存儲不能在[]運算符內部用于在數(shù)組中查找值的名稱(字符串)。
您可能想要做的是讓循環(huán)遍歷每個可能的名稱并找到與之相關的分數(shù)。但是,為了做到這一點,您無需更改循環(huán),而是更改了數(shù)組。
為此,您唯一需要更改的行是scores[score]=name. 嘗試將其更改為scores[name]=score. 現(xiàn)在,這會將名稱存儲為鍵,并將分數(shù)存儲為值。如果你運行下面的代碼,你會看到不是先有分數(shù)然后是名字,你會先有名字,然后是我假設你想要的分數(shù)。這與您發(fā)布的輸入文件的格式相匹配。
result_f=open("results.txt")
scores={}
for line in result_f:
(name, score)=line.split()
scores[name]=score
result_f.close()
for each in sorted(scores.keys(), reverse=True):
print(each+' '+scores[each])
添加回答
舉報