如何更改用Python排序的嵌套字典的打印格式
我有这样一个嵌套字典:如何更改用Python排序的嵌套字典的打印格式,python,Python,我有这样一个嵌套字典: all_teams=OrderedDict({'Iran':{“wins::wins_Iran,”,loss::loss_Iran,“:draws_Iran,”,draw::draws_Iran,”,goal_difference_Iran,“,points”:points_Iran}, ‘西班牙’:{“赢::赢西班牙,”,输::输西班牙,”,平局:“:平西班牙,”,球差:“:球差西班牙,”,分数:分西班牙}) 这些值是根据代码中的计算得出的 我需要像这样对它们进行分类
all_teams=OrderedDict({'Iran':{“wins::wins_Iran,”,loss::loss_Iran,“:draws_Iran,”,draw::draws_Iran,”,goal_difference_Iran,“,points”:points_Iran},
‘西班牙’:{“赢::赢西班牙,”,输::输西班牙,”,平局:“:平西班牙,”,球差:“:球差西班牙,”,分数:分西班牙})
这些值是根据代码中的计算得出的
我需要像这样对它们进行分类:
sort_all_teams=list(已排序(所有团队中的所有团队。items(),key=lambda x:(x[1]。get('points','wins'),x[0]),reverse=True))
用户输入目标后,结果如下:
对于所有团队中的键、值排序:
打印(键、值)
西班牙{'wins:':1',loss:':0',平局:':2',球差:':1',积分:5}
伊朗{赢:':0',输:':1',平局:':2',球差':-1',分:2}
但如果我能像这样改变就太好了:
(我的意思是“空格”--“逗号”--“逗号”--和…)
西班牙赢:1,输:0,平:2,球差:1,分:5
伊朗赢:0,输:1,平:2,球差:-1,分:2
提前谢谢你 替换了原始代码中的打印语句
from collections import OrderedDict
wins_iran, loses_iran, draws_iran, goal_difference_iran, points_iran = [0, 1, 2, -1, 2]
wins_spain, loses_spain, draws_spain, goal_difference_spain, points_spain = [1, 0, 2, 1, 5]
all_teams = OrderedDict({'Iran':{"wins:":wins_iran , ", loses:":loses_iran , ", draws:":draws_iran , ", goal difference":goal_difference_iran , ", points":points_iran},
'Spain':{"wins:":wins_spain , ", loses:":loses_spain , ", draws:":draws_spain , ", goal difference:":goal_difference_spain , ", points":points_spain}})
sort_all_teams = list(sorted(all_teams.items(),key=lambda x: (x[1].get('points','wins'),x[0]),reverse = True))
for key,value in sort_all_teams:
#print(key,value) replaced print statement with lines below
s = ['{} {}'.format(k, v) for k, v in value.items()]
print(key, *s)
输出
Spain wins: 1 , loses: 0 , draws: 2 , goal difference: 1 , points 5
Iran wins: 0 , loses: 1 , draws: 2 , goal difference -1 , points 2
您是否可以添加一个步骤并执行以下操作:
键。替换(“,”)
和值的步骤相同。您能否澄清问题的具体原因?你知道字符串格式的基本知识吗?