我想删除每个队得分最低的人。但我总是得到一个键错误:0
Players = {'An': {'Team ':'Red','Score':6 }, 'Jef': {'Team':'Blue','Score': 7 },'Jos': {'Team':'Red','Score':5 }}
names= Players.keys()
for i in range (len(names)):
if Players[i]["Team"] == Players[i+1]["Team"] :
if Players[i]['Score'] > PLayers[i+1]['Score']:
Players.remove(Players[i+1])
有人知道我犯了什么错误吗?(事实上,我知道这段代码效率很低,但对于这个项目,我不能使用大多数Python工具或列表理解)
你的问题是你是在按索引循环,这是字典没有的。你需要按键循环,然后做你想做的任何处理。在
for i in range(len(names))
做0, 1, 2, 3, ...
Players
没有这些键中的任何一个。在更不用说你试图在字典中创建某种形式的order,根据定义,它是一种无顺序的数据结构。在这条路上有疯狂。在
你应该这样做:
玩家的指纹是: {'Jef':{'Score':7,'Team':'Blue'},'An':{'Score':6,'Team':'Red'}
乔被撤职了。在
相关问题 更多 >
编程相关推荐