Python矩阵格式化显示问题:实现对齐缩进的矩阵输出
Python矩阵格式化对齐输出方案
要实现矩阵元素对齐(每行末尾自然对齐,同列数字位置对齐),核心思路是先确定每一列的最大字符宽度,再按该宽度格式化每个元素,具体步骤如下:
- 计算每列的最大宽度:转置矩阵,遍历每一列的所有数字,将数字转为字符串后取最长长度,作为该列的格式化宽度。
- 格式化每行元素:对每行的每个元素,按照对应列的宽度进行对齐格式化,再拼接成带方括号的行字符串。
示例代码
# 定义示例矩阵 matrix = [ [1, 304, 67], [387, 378, 2], [6783, 2, 2222] ] # 转置矩阵,按列处理 transposed_matrix = list(zip(*matrix)) # 计算每列的最大字符宽度 column_widths = [max(len(str(num)) for num in column) for column in transposed_matrix] # 格式化输出每一行 for row in matrix: # 对每个元素按对应列的宽度右对齐格式化 formatted_items = [f"{num:>{width}}" for width, num in zip(column_widths, row)] # 拼接成带方括号的行 formatted_row = "[" + ", ".join(formatted_items) + "]" print(formatted_row)
输出效果
[ 1, 304, 67] [ 387, 378, 2] [6783, 2, 2222]
如果需要左对齐,只需将格式化字符串中的>改为<即可,输出会变成:
[1, 304, 67 ] [387, 378, 2 ] [6783, 2, 2222]
这种方法能自动适配任意数字位数的矩阵,保证每列元素对齐,每行末尾自然对齐,比手动计算空格更可靠。
内容的提问来源于stack exchange,提问作者Jitesh Singh
相关产品推荐
相关产品推荐

