String 在python 3.xx中,如何根据列表中最大单词的长度右对齐输出

String 在python 3.xx中,如何根据列表中最大单词的长度右对齐输出,string,python-3.x,loops,string-formatting,python-3.6,String,Python 3.x,Loops,String Formatting,Python 3.6,我有: 我的期望输出: a = ['bicycle','airplane','car','boat'] for i in a: print("{:>??}".format(i)) # ?? because I dont know what to do here 我需要对齐我的输出,使所有的字都对齐,间距与最长的字一样大??(我有一个问号,因为我认为这是我实现预期产出的唯一途径)。谢谢 选项1 预先计算最大字符串的长度,并将其作为一个单独的参数传递到format bicycl

我有:

我的期望输出:

a = ['bicycle','airplane','car','boat']

for i in a:
    print("{:>??}".format(i)) # ?? because I dont know what to do here

我需要对齐我的输出,使所有的字都对齐,间距与最长的字一样大??(我有一个问号,因为我认为这是我实现预期产出的唯一途径)。谢谢

选项1
预先计算最大字符串的长度,并将其作为一个单独的参数传递到
format

  bicycle
 airplane
      car
     boat

选项2
使用
str.rjust
的替代方法:

l = len(max(a, key=len))

for i in a:
    print("{n:>{w}}".format(n=i, w=l))

 bicycle
airplane
     car
    boat

选项3
您还可以将
pd.Series.to_string
的转储打印到:

for i in a:
    print(i.rjust(l))  # same `l` as computed in Option 1


 bicycle
airplane
     car
    boat

其他制表软件包(我使用
制表
)也可以在这里发挥良好的效果

import pandas as pd
print(pd.Series(a).to_string())

0     bicycle
1    airplane
2         car
3        boat