簡體   English   中英

如何更改在 Python 中排序的嵌套字典的打印格式

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM