我正在尝试为班级的一个小琐事游戏创建一个高分列表。我遇到了一个问题,因为我似乎无法让打印输出不只是随机打印字典。这个片段实际上并不是来自完整的程序,因为我不想破坏任何东西,所以它只是试图推理出这个函数。
scores = {'score1': {'initials': 'ywo',
'score': 20},
'score2': {'initials': 'JRV',
'score': 18},
'score3': {'initials': 'blh',
'score': 16},
'score4': {'initials': 'yth',
'score': 15},
'score5': {'initials': 'rtg',
'score': 12}}
total_score = 17
#iterates over the scores to see if new score and initials should be input
for i in (scores):
if total_score > scores[i]['score']:
scores[i]['initials'] = 'JKE'
scores[i]['score'] = total_score
break
#prints scores in a table like format rather than list
print("HIGH\tSCORES")
for i in scores:
print(scores[i]['initials'], "\t", scores[i]['score'])
我的输出每次都是随机的。我只希望字典按从高到低的顺序打印,例如:
ywo 20
JRV 18
JKE 17
等等等等
我遇到的另一个问题是我不确定如何将字典中的其他分数降低。因此,如果 JKE 的分数替换了 blh 的分数,那么 blh 不仅会从字典中删除,而且会向下移动到 score4 索引,并且 score4 值将移动到 score5 等等。我感谢任何建议!谢谢!