Python 按列表中最长的字符串iterable打印格式

Python 按列表中最长的字符串iterable打印格式,python,Python,我有两张单子 l1 = ['aaaaaaaaaaaaaaaaa','bb'] l2 = ['FY', 'EY'] 我想迭代这两个列表,它们的长度总是相同的,并且打印每个列表,每个列表由许多选项卡隔开 例如: for x,y in zip(l1,l2): print(x,'\t'*3,y) aaaaaaaaaaaaaaaaa FY bb EY 但是,我希望打印内容以列表中最长的元素为选项卡,以便打印内容具有标准格式: print(for

我有两张单子

l1 = ['aaaaaaaaaaaaaaaaa','bb'] 
l2 = ['FY', 'EY'] 
我想迭代这两个列表,它们的长度总是相同的,并且打印每个列表,每个列表由许多选项卡隔开

例如:

for x,y in zip(l1,l2):
    print(x,'\t'*3,y)


aaaaaaaaaaaaaaaaa            FY
bb           EY
但是,我希望打印内容以列表中最长的元素为选项卡,以便打印内容具有标准格式:

print(formatted_print_tabs)


aaaaaaaaaaaaaaaaa            FY
bb                           EY

我花了一段时间想弄明白这一点,结果弄得我左右为难

您可以先计算最大宽度,然后使用ljust填充字符串:

width = max(map(len, l1))
for x, y in zip(l1, l2):
    print(x.ljust(width), y, sep='\t')

您可以先计算最大宽度,然后使用ljust填充字符串:

width = max(map(len, l1))
for x, y in zip(l1, l2):
    print(x.ljust(width), y, sep='\t')

您必须解析一次以获得宽度,然后再次进行打印。因为宽度是任意的,你可能想使用空格。谢谢@KennyOstrom,我采取了一种类似的方法,并尝试使用re.sub+空格中的diff替换我的变量,但感觉不对,大约有5行代码!您必须解析一次以获得宽度,然后再次进行打印。因为宽度是任意的,你可能想使用空格。谢谢@KennyOstrom,我采取了一种类似的方法,并尝试使用re.sub+空格中的diff替换我的变量,但感觉不对,大约有5行代码!printx.ljustwidth,y,sep='\t'*3printx.ljustwidth,y,sep='\t'*3