[英]How Can I Change The Print Format Of A Nested Dictionary That Is Sorted In Python
我有一個這樣的嵌套字典:
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_of_teams.items(),key=lambda x: (x[1].get('points','wins'),x[0]),reverse = True))
用戶輸入目標后的結果是這樣的:
for key,value in sort_all_teams:
print(key,value)
Spain {'wins:': 1, ', loses:': 0, ', draws:': 2, ', goal difference:': 1, ', points': 5}
Iran {'wins:': 0, ', loses:': 1, ', draws:': 2, ', goal difference': -1, ', points': 2}
但如果我能像這樣改變那就太好了:
(我的意思是“空格”---“逗號”---“'”---還有……)
Spain wins:1 , loses:0 , draws:2 , goal difference:1 , points:5
Iran wins:0 , loses:1 , draws:2 , goal difference:-1, points: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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.