python - 根据每场比赛的结果追加排名

标签 python list append

我可能在如何解决这个问题上完全错误,但基本上我需要首先创建一个名称字典,其中包含比赛的空值列表。

contestants = {[("Alice", []),("Dennis", []), ("Bob", []), ("Eva", []), ("Clare", [])]}

我假设这就是我的做法^^

然后我需要能够将值 append 到空列表中,并根据总体得分对位置进行排序。

{'Dennis': [4, 4, 4, 4, 4, 5], 'Alice': [2, 2, 2, 1, 1, 2], 'Bob': [3, 3, 3, 3, 2, 1], 'Eva': [5, 5, 5, 5, 3, 3], 'Clare': [1, 1, 1, 2, 5, 4]}

以上是每位玩家的得分,并已为他们排序。

def seriesscores(racescores):
contestants = {[("Alice", []),("Dennis", []), ("Bob", []), ("Eva", []), ("Clare", [])]}
contestants.append(racescores[1])
return contestants

我目前正在测试上面的代码,它一直显示如下错误:

Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 2, in seriesscores
TypeError: unhashable type: 'list'

我现在正在寻找的是将分数附​​加到空列表的方法,我想我可以使用以下代码对其进行排序:

return sorted(contestants, key=lambda x: (sum(x[1])))

我走的路正确吗?

最佳答案

试试这个:

contestants = {"Alice": [], "Dennis": [], "Bob": [], "Eva": [], "Clare": []}

而不是这个:

contestants = {[("Alice", []),("Dennis", []), ("Bob", []), ("Eva", []), ("Clare", [])]}

另外,racescores 参数到底是什么?我想你可能想做这样的事情:

for key, value in enumerate(racescores):
    contestants[key] += value

但我猜测,如果 racescores 中没有数据格式,我无法为您提供更多帮助。

关于python - 根据每场比赛的结果追加排名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27404638/

相关文章:

c# - 如何合并两个列表并删除重复项

matlab - 将元素 append 到数组的最快方法是什么?

jQuery - 将 div append 到 body,body 是对象?

python - 使用递归从两个列表创建对列表

javascript - 追加后点击事件不起作用

python - 使用 groupby 和 loc 设置新的数据框

python:比较等效坐标

python - Python中的Haversine公式(两个GPS点之间的方位和距离)

Python:如何确定字符串中是否存在单词列表

python - 如何将带有嵌套字典的列表写入 csv 文件?