You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python如何将二维列表按指定表头格式化输出保留两位小数的表格

Python二维列表格式化输出指定表格

首先准备基础数据:

# 原始二维矩阵
matrix = [
    ['Adam', 57.6271186440678, 2.542372881355932, 0.0, 39.83050847457627],
    ['BAMON', 40.90909090909091, 9.090909090909092, 0.0, 50.0],
    ['BANESH', 72.61146496815287, 0.6369426751592356, 0.0, 26.751592356687897],
    ['BASA', 60.317460317460316, 4.761904761904762, 1.5873015873015872, 33.333333333333336]
]
# 固定表头
headers = ["Name", "High Income", "Medium Income in Asia", "Low Income", "Extreme Income in America"]

方法1:内置库实现控制台对齐表格

不需要安装任何第三方依赖,自动计算列宽对齐,所有数值默认保留两位小数:

# 格式化每行数据
formatted_data = []
for row in matrix:
    # 名字首字母大写其余小写,匹配示例格式,不需要可直接使用row[0]
    name = row[0].capitalize()
    # 数值列统一保留两位小数
    nums = [f"{val:.2f}" for val in row[1:]]
    formatted_data.append([name] + nums)

# 计算每列最大宽度,保证对齐
col_width = []
for col_idx in range(len(headers)):
    current_max = len(headers[col_idx])
    for line in formatted_data:
        current_max = max(current_max, len(str(line[col_idx])))
    col_width.append(current_max)

# 打印表格
split_line = "+" + "+".join(["-"*(w+2) for w in col_width]) + "+"
print(split_line)
# 打印表头
print("|" + "|".join([f" {h:<{col_width[i]}} " for i, h in enumerate(headers)]) + "|")
print(split_line)
# 打印内容
for line in formatted_data:
    print("|" + "|".join([f" {str(cell):<{col_width[i]}} " for i, cell in enumerate(line)]) + "|")
print(split_line)

运行后输出的控制台表格边框完整、列对齐,数值精度符合要求。

方法2:生成指定结构的HTML代码

如果需要输出示例中带class属性的HTML表格结构,直接拼接字符串即可:

formatted_data = []
for row in matrix:
    name = row[0].capitalize()
    nums = [f"{val:.2f}" for val in row[1:]]
    formatted_data.append([name] + nums)

# 拼接HTML结构
html = [
    '<div class="s-table-container">',
    '<table class="s-table">',
    '  <thead>',
    '    <tr>'
]
for h in headers:
    html.append(f'      <th>{h}</th>')
html.extend([
    '    </tr>',
    '  </thead>',
    '  <tbody>'
])
for row in formatted_data:
    html.append('    <tr>')
    for cell in row:
        html.append(f'      <td>{cell}</td>')
    html.append('    </tr>')
html.extend([
    '  </tbody>',
    '</table>',
    '</div>'
])

final_html = "\n".join(html)
# 打印结果或写入文件使用
print(final_html)

生成的HTML结构和给出的示例完全一致,可以直接嵌入页面使用。

如果需要调整数值格式,比如对0值、整数值保留一位小数,修改列表推导式里的f-string格式化规则即可。

内容的提问来源于stack exchange,提问作者NorthernLights

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 05:15:41