从嵌套字典中打印两位数
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]}")
我无法从嵌套字典中打印出一些值。我的嵌套字典如下所示:
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]}")