小能豆

Python/格式 - 列表和宽度

py

到目前为止,我的列表的格式如下:

print('{:>15} {:>15} {:>15}{:>15}'.format(*i_liste_l))

我对 python 很陌生,我不知道如何通过动态设置动态宽度

len_total = int(len(str(mi_f)))
if len_total >= 15:
    width = int(len_total)
else: width = int(15)
print('{:>width} {:>width} {:>width}{:>width}'.format(*i_liste_l))

这可能吗?我必须为列表中的所有项目设置宽度吗?


阅读 7

收藏
2024-10-29

共1个答案

小能豆

是的,可以通过动态设置宽度来格式化输出。在 Python 的 str.format() 中,可以使用 {:<{}}{:>{}} 的方式传递动态宽度。以下是如何在你的例子中实现这一点:

len_total = len(str(mi_f))
width = max(len_total, 15)  # 宽度取 len_total 和 15 中的较大值

# 通过 format 将宽度参数 w=width 传入每个字段
print('{:>{w}} {:>{w}} {:>{w}} {:>{w}}'.format(*i_liste_l, w=width))

说明

  • {:>{w}} 中的 {w} 会作为动态宽度传入每个字段。
  • 这里的 width 会被设置为 len_total15 中较大的值,确保宽度不会低于 15。
  • format() 调用中传递 w=width,这样可以将该宽度应用于所有字段。

注意

  • 如果你想要 i_liste_l 中的所有项目具有相同的宽度,这种方式可以轻松实现。
  • 这样,mi_f 的长度会动态影响每一列的宽度,格式会根据 width 调整。

这样每个项目就会按照指定的动态宽度来输出了!

2024-10-29