Python指定宽度格式化打印多值时仅首参数重复展示问题
问题原因
你在格式化占位符中指定的{0:<5}里的0是参数索引,代表调用format()时传入的第一个参数。三个占位符都填写索引0,会导致三列都重复取第一个参数valuelist[i]的值,所以后面两个列表的内容无法正常显示。
解决方案
只需要把占位符的索引对应到你传入的参数顺序即可,有两种常用写法:
- 显式指定索引的写法
for i in range(len(valuelist)): print("{0:<5} {1:<5} {2:<5}".format(valuelist[i], averagelist[i], averagesquared[i]))
- 省略索引的简化写法(参数按顺序匹配占位符,不需要额外标注索引)
for i in range(len(valuelist)): print("{:<5} {:<5} {:<5}".format(valuelist[i], averagelist[i], averagesquared[i]))
以上两种写法都可以在单行打印的前提下,实现三列左对齐、每列宽度固定为5个字符的效果。如果后续需要调整对齐方式,把<换成>就是右对齐,换成^就是居中对齐,按需修改即可。
内容的提问来源于stack exchange,提问作者ronron681
相关产品推荐
相关产品推荐

