我正在创建一个游戏,我想打印出从最高到最低的用户分数。你知道吗
到目前为止这是我的代码
player_scores = {}
for line in reversed(open("playerscores.txt").readlines()):
name, score = line.rstrip('\n').split(' / ')
score = int(score)
if name in player_scores and len(player_scores[name]) < 3:
player_scores[name].append(score)
if name not in user_scores:
player_scores[name] = list((score,))
中的名称playerscores.txt文件存储方式如下:
Bob / 10
Jill / 10
我的代码从用户那里得到最后3个分数(最后3个生命),并以此为基础。我需要打印用户名连同最高分数最低。你知道吗
在Sort a Python dictionary by value的解不起作用。我最终得到如下输出:
[('Alex', [1]), ('Joeseph', [32, 576]), ('Steve', [33]), ('Bob', [55, 22])]
没有分类的。你知道吗
首先,从所有分数列表中获取每个玩家的最高分数:
现在可以使用
operator.itemgetter
按值排序。记住逆转结果!你知道吗最后,要打印它,只需执行以下操作
从你的例子到被指出是一个重复的答案的区别是,在这个例子中,你可以比较每个键的值,因为它是一个列表。您必须将(我想)与该列表中的最大分数进行比较-因此keyfunction必须处理:
Python 2 这是一种方法: 编辑
输出:
相关问题 更多 >
编程相关推荐