簡體   English   中英

從嵌套字典中打印兩位數

[英]Printing double digits from a nested dictionary

我無法從嵌套字典中打印出一些值。 我的嵌套字典如下所示:

player_statistics = {'Johny': {'Kills': '7', 'Assists': '11', 'Deaths': '14'},
                     'Alice': {'Kills': '5', 'Deaths': '7', 'Assists': '3'},
                     'Jim': {'Kills': '14', 'Deaths': '6', 'Assists': '9'}}

我應該像這樣為每個玩家打印出每種信息類型:

Player statistics:

ALICE
Assists: 3
Deaths: 7
Kills: 5
------------
JIM
Assists: 9
Deaths: 6
Kills: 14
------------
JOHNY
Assists: 11
Deaths: 14
Kills: 7
------------

但由於某種原因,我最終得到了這樣的結果,其中兩位數的第二個數字轉到下一行:

Player statistics:

ALICE:
Assists: 3
Deaths: 7
Kills: 5
------------
JIM
Assists: 9
Deaths: 6
Kills: 1
4
------------
JOHNY
Assists: 1
1
Deaths: 1
4
Kills: 7
------------

這是我的代碼:

def main():

    player_statistics = {'Johny': {'Kills': '7', 'Assists': '11', 'Deaths': '14'},
                         'Alice': {'Kills': '5', 'Deaths': '7', 'Assists': '3'},
                         'Jim': {'Kills': '14', 'Deaths': '6', 'Assists': '9'}}
    
    print("Player statistics:")
    print()
    for player in sorted(player_statistics):
        print(player.upper())
        for stat_type in sorted(player_statistics[player]):
            print(stat_type, end=": ")
            for value in sorted(player_statistics[player][stat_type]):
                print(value)
        print("------------")


if __name__ == "__main__":
    main()

我相信這個問題是由第 12 行的格式引起的。為什么它會這樣工作,而不是僅僅在 stat_type 行的末尾給出完整的兩位數值? 另外,我怎樣才能讓它正常工作?

而不是這個:

for stat_type in sorted(player_statistics[player]):
    print(stat_type, end=": ")
    for value in sorted(player_statistics[player][stat_type]):
        print(value)

它應該是這樣的:

for stat_type in sorted(player_statistics[player]):
    print(f"{stat_type}: {player_statistics[player][stat_type]}")

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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