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

Python如何实现第二列在第一列最长字符串后3空格处左对齐打印

Python列表双列对齐打印方案

原有代码问题

你原来的代码把第一列的宽度写死为10,灵活性差,既无法适配更长的姓名输入,也不能保证第二列的起始位置刚好在最长姓名后3个空格处,需要替换为动态计算的宽度值。

核心思路

先动态计算第一列所有姓名字符串的最大长度,将第一列的总宽度设置为「最长姓名长度 + 3」,即可保证所有行的第二列数字,都从最长姓名末尾往后3个空格的位置开始对齐。

修改后完整代码

vote_count = [('Matthew', 5), ('Harry', 88)]
# 计算第一列最长姓名的长度
max_name_len = max(len(name) for name, _ in vote_count)

for name, count in vote_count:
    # 写法1:Python3.6+ 推荐使用f-string,可读性更高
    print(f"{name:<{max_name_len + 3}}{count}")

    # 写法2:兼容你原来的%格式化写法,可直接替换原有print语句
    # print("%-*s%i" % (max_name_len + 3, name, count))

运行效果

Matthew   5
Harry     88

完全符合要求的对齐规则。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 16:45:02