打印包含两列的字符串

Printing string with two columns

我正在尝试打印一个包含两个固定列的字符串。例如,我希望能够打印:

abc       xyz
abcde     xyz
a         xyz

打印时格式化输出字符串的正确方法是什么?还有,2.6版本之前和2.6版本之后是怎么做到的?

有多种方法可以做到这一点,这取决于数据的存储方式。假设您的数据存储在等长列表中:

for i in range(len(list1)):
    print(“%3i\t%3i” %(list1[i],list2[i]))

这将适用于 python 的所有版本。 3i 确保输出的字段宽度为 3 个字符

您可以使用格式并提及修复列之间的空格

'{0:10}  {1}'.format(s1, s2)

旧样式格式

'%-10s' '%s' % (s1,s2)

这应该适用于所有长度的元素(假设它们是字符串。这假设您的数据在两个单独的列表 firstsecond 中。

maxlen = len(max(first, key=len))

for i,j in zip(first, second):
    print "%s\t%s" % (i.ljust(maxlen, " "), j)

这适用于 Python 2.x,在 2.6 之前和之后。

在 >=python3.6

之前
s1='albha'
s2='beta'

f'{s1}{s2:>10}'

#output
'albha      beta'