如何按顺序打印Python字典的所有值并输出为带指定表头的列格式
实现方案
你可以用Python内置的字符串格式化功能实现列对齐效果,无需额外安装第三方库,以下是完整代码示例:
- 首先假设你的原始字典为击球顺序为key、球员信息为元组的结构(如果你的字典结构不同,调整对应取值逻辑即可)
# 示例运动员数据字典 player_dict = { 1: ("A Baddoo", "LF"), 2: ("J Schoop", "1B"), 3: ("R Grossman", "DH") } # 定义各列固定宽度,可根据实际内容长度调整 order_col_width = 10 name_col_width = 15 pos_col_width = 10 # 打印表头 print(f"{'order':<{order_col_width}}{'name':<{name_col_width}}{'position':<{pos_col_width}}") # 按击球顺序排序后逐行打印内容 for order, (name, position) in sorted(player_dict.items()): print(f"{order:<{order_col_width}}{name:<{name_col_width}}{position:<{pos_col_width}}")
- 代码说明:格式化语法里的
<代表左对齐,后面跟随的数字为该列占用的字符宽度,调整三个列宽度的数值就能适配更长的球员姓名、位置等内容。 - 如果你的原始数据是列表套字典的结构,将遍历逻辑修改为以下形式即可:
# 示例列表套字典结构数据 player_list = [ {"order":1, "name":"A Baddoo", "position":"LF"}, {"order":2, "name":"J Schoop", "position":"1B"}, {"order":3, "name":"R Grossman", "position":"DH"} ] order_col_width = 10 name_col_width = 15 pos_col_width = 10 print(f"{'order':<{order_col_width}}{'name':<{name_col_width}}{'position':<{pos_col_width}}") for player in player_list: print(f"{player['order']:<{order_col_width}}{player['name']:<{name_col_width}}{player['position']:<{pos_col_width}}")
运行上述代码后就能得到你需要的类电子表格对齐效果。
内容的提问来源于stack exchange,提问作者redleg_64
相关产品推荐
相关产品推荐

