Python使用join()方法打印元组数据时输出不对齐的问题咨询
Python打印多列数据对齐的解决方案
你可以通过固定列宽格式化打印的方式实现对齐,有两种常用的实现方案:
方案1:动态计算列宽(推荐,适合不确定列最长内容的场景)
这种方案会自动遍历所有数据计算每列的最大宽度,即使后续新增数据也不会打乱对齐效果,非常适合你有30条数据的场景:
test = (('BoringDAO',199.09,0.48),('Santiment Network Token',0.66,0.25)) # 计算每列内容转成字符串后的最大长度 max_widths = [max(len(str(row[i])) for row in test) for i in range(len(test[0]))] # 可自定义列之间的额外间距 gap = 5 for row in test: # 第一列左对齐,数字列可根据需求选择左对齐/右对齐(右对齐用>更美观) print(f"{row[0]:<{max_widths[0] + gap}}{row[1]:<{max_widths[1] + gap}}{row[2]:<}")
运行后输出效果和你要求的完全一致:
BoringDAO 199.09 0.48 Santiment Network Token 0.66 0.25
方案2:手动固定列宽(简单快速)
如果你提前知道每列的最长内容不超过某个长度,可以直接手动指定列宽,代码更简洁:
test = (('BoringDAO',199.09,0.48),('Santiment Network Token',0.66,0.25)) for name, val1, val2 in test: # 手动指定第一列宽度30,第二列宽度15 print(f"{name:<30}{val1:<15}{val2:<}")
格式说明
f-string中对齐语法的规则:
<表示内容左对齐,>表示内容右对齐,^表示居中对齐- 对齐符号后面跟的数字为该列的总宽度,内容长度不足时自动用空格填充
内容的提问来源于stack exchange,提问作者Kben59
相关产品推荐
相关产品推荐

