gpt4 book ai didi

python - 高分功能问题

转载 作者:太空宇宙 更新时间:2023-11-03 18:46:41 26 4
gpt4 key购买 nike

我正在尝试为类里面的一个小问答游戏创建一个高分列表。但我遇到了问题,因为我似乎无法获得打印输出,而不仅仅是随机打印字典。这个片段实际上并不是来自完整的程序,因为我不想破坏任何东西,所以它只是尝试推理出该函数。

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 等。我感谢任何建议!谢谢你!

最佳答案

我认为你可能想让这有点太复杂(尽管这听起来像家庭作业,所以这可能是一个要求)。

我会像这样处理它:

scores = {'YWO': 20,
'BLH': 16,
'YTH': 15,
'JRV': 18,
'RTG': 12,
}


def display_scores(scores):
for score, name in sorted(((scores[k], k) for k in scores, reverse=True):
print(name, score)

然后您可以通过以下方式轻松添加球员和分数:

scores[initials] = scores.get(initials, 0) + 1 #or points or whatever

关于python - 高分功能问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19388553/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com