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

如何仅使用F-String将列表输出为对齐列/网格格式

仅用f-string实现列表对齐网格输出的方法

核心逻辑不需要依赖任何第三方库,只需要结合f-string原生的动态宽度对齐语法即可实现,分两步完成:

  • 先预计算每一列的最大字符宽度,作为该列的对齐基准
  • 逐行遍历元素,用f-string按对应列宽格式化每个单元格后拼接输出

f-string对齐语法说明

f-string支持直接传入变量作为格式宽度,常用对齐规则:

  • f'{value:>{width}}':内容右对齐,左侧补空格到指定宽度(匹配你给出的示例效果)
  • f'{value:<{width}}':内容左对齐,右侧补空格到指定宽度
  • f'{value:^{width}}':内容居中对齐,两侧补空格到指定宽度

可直接运行的实现代码

# 原始输入数据
lst = (['a', 'b', 'c', 'd', 'e'], ['1','2','3','4','5'], ['1', '3', '331', '1', '82'])

# 1. 计算每一列需要的对齐宽度:取该列所有元素的字符串长度最大值
col_count = len(lst[0])
col_widths = [max(len(str(row[i])) for row in lst) for i in range(col_count)]

# 2. 逐行格式化输出
for row in lst:
    formatted_cells = [f"{cell:>{col_widths[idx]}}" for idx, cell in enumerate(row)]
    print(' '.join(formatted_cells))

运行结果

a b   c d  e
1 2   3 4  5
1 3 331 1 82

自定义调整说明

  • 需要左对齐效果时,把格式化代码里的>替换为<即可
  • 需要调整列间距时,修改' '.join()里的空格数量即可,比如用两个空格连接就会增大列间距
  • 列表包含数字、None等非字符串元素时,代码里的str()转换已经自动兼容,不需要额外处理

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 21:48:48