我有这样的字典:
team_dict = {
'Iran': {
'wins':ir_win,
'loses':ir_lose,
'draws':ir_draws,
'goal difference':ir_goal,
'points':ir_score
},
'Spain': {
'wins':sp_win,
'loses':sp_lose,
'draws':sp_draws,
'goal difference':sp_goal,
'points':sp_score
},
'Portugal': {
'wins':po_win,
'loses':po_lose,
'draws':po_draws,
'goal difference':po_goal,
'points':po_score
},
'Morocco': {
'wins':ma_win,
'loses':ma_lose,
'draws':ma_draws,
'goal difference':ma_goal,
'points':ma_score
}
}
然后我对其进行了排序:
sorted_team_dict = sorted(
team_dict.items(),
key = lambda x: (-x[1].get('points'), -x[1].get('wins'), x[1].get('keys')
)
)
我要打印排序依据:
for item in sorted_team_dict:
print(
"%s wins:%i , loses:%i , draws:%i , goal difference:%i , points:%i" % (
sorted_team_dict[item]["keys"],
sorted_team_dict[item]["wins"],
sorted_team_dict[item]["loses"],
sorted_team_dict[item]["draws"],
sorted_team_dict[item]["goal difference"],
sorted_team_dict[item]["points"]
)
)
但我遇到以下错误:
list indices must be integers or slices, not tuple
我无法理解错误的含义。
答案 0 :(得分:1)
这里的问题是:class
不是字典,而是一个元组列表。因此,您将像这样遍历它:
sorted_team_dict
您可能应该将其重命名为for key, value in sorted_team_dict:
print("%s wins:%i , loses:%i , draws:%i , goal difference:%i , points:%i" %(key,value["wins"],value["loses"],value["draws"],value["goal difference"],value["points"]))
或其他名称。该代码也可以使用其他清理方法,但这超出了此问题的范围。