Python打印字典键值对时如何填充点号实现值列对齐
问题说明
需要实现字典键值对打印时值列自动对齐,原有代码因为每个键长度不一致,固定拼接相同数量的点会导致值的位置错位。
实现方法
核心思路是先统计所有字典键的最大长度,让每个键和后面的填充点总长度保持一致,即可实现值列对齐。
修正后代码
# 注意不要用dict作为变量名,会覆盖Python内置字典类型 my_dict = {'AAAAA': 2, 'BB': 1, 'CCCCCCCCC': 85} # 计算所有键的最大长度 max_key_length = max(len(key) for key in my_dict.keys()) # 设定键+点的总宽度:最长键长度 + 固定8个点的长度 fill_total_width = max_key_length + 8 for k, v in my_dict.items(): # 左对齐填充.到指定总宽度,再拼接值 print(f'{k:.<{fill_total_width}}{v}')
运行输出
AAAAA............2 BB...............1 CCCCCCCCC........85
语法说明
格式化串{k:.<{fill_total_width}}的规则:
<代表左对齐.是长度不足时的填充字符{fill_total_width}是整个占位区域的总宽度,长度不够的位置会自动补填充字符
这样所有键加后续填充点的总长度完全相同,后面的值自然会在同一列对齐。如果需要调整点的数量,修改fill_total_width的加值即可。
内容的提问来源于stack exchange,提问作者claghorn
相关产品推荐
相关产品推荐

