关于如何解决这个问题我可能完全错了,但基本上我需要首先创建一个名称字典,其中包含一个种族值的空列表。
contestants = {[("Alice", []),("Dennis", []), ("Bob", []), ("Eva", []), ("Clare", [])]}
我假设我是这样做的^^
然后我需要能够将值附加到空列表中,并根据总分进行排名。
{'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])))
我是否在正确的轨道上?
答案 0 :(得分:2)
试试这个:
contestants = {"Alice": [], "Dennis": [], "Bob": [], "Eva": [], "Clare": []}
而不是:
contestants = {[("Alice", []),("Dennis", []), ("Bob", []), ("Eva", []), ("Clare", [])]}
另外,racescores
论证究竟是什么?我想你可能想做这样的事情:
for key, value in enumerate(racescores):
contestants[key] += value
但我在racescores
猜测并且没有数据格式我无法为您提供更多帮助。