如何在Python中打印对齐的对称网格?解决手动空格错位问题
实现Python表格列对齐输出的方法
手动靠空格排版表格很容易因为内容长度不一样(比如名字"Philippe"比"Eric"长)导致列错位,用Python的字符串格式化功能就能解决这个问题,以下是优化后的代码:
lst = ['40', '36', '112', 'Eric', '30', 'Bob', '15', '125', '45', 'Philippe'] d = [] things = 0 summ = 0 for val in lst: try: summ += float(val) things += 1 except ValueError: d.append((val, summ, things)) summ = 0 things = 0 # 定义表头,用f-string指定列宽和对齐方式:<左对齐,>右对齐 print(f"{'Name':<15} {'total':>12} {'# items':>8}") # 可选分割线,让表格结构更清晰 print('-' * 35) for name, total, count in d: # 格式化输出,总金额保留两位小数更规范 print(f"{name:<15} {total:.2f}$ {count:>8}")
关键说明:
:<15表示该列左对齐,固定占15个字符宽度,内容不足时自动补空格:>12表示该列右对齐,固定占12个字符宽度,适合数字类内容排版:.2f让总金额保留两位小数,格式更统一- 添加分割线可以让表格的层级感更强
运行后输出的表格会自动对齐,不会因为内容长度差异出现错位:
Name total # items ----------------------------------- Eric 188.00$ 3 Bob 30.00$ 1 Philippe 185.00$ 3
内容的提问来源于stack exchange,提问作者metal
相关产品推荐
相关产品推荐

