我正在尝试打印一个包含两个固定列的字符串。例如,我希望能够打印:
abc xyz
abcde xyz
a xyz
打印时格式化输出字符串的正确方法是什么?另外,如何在2.6版之前和版本2.6之后完成?
答案 0 :(得分:13)
您可以在列之间使用格式和提及修复空间
'{0:10} {1}'.format(s1, s2)
旧样式格式
'%-10s' '%s' % (s1,s2)
答案 1 :(得分:1)
这适用于所有元素长度(假设它们是字符串。这假设您的数据分为两个单独的列表first
和second
。
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之前和之后。
答案 2 :(得分:1)
在> = python3.6之前
s1='albha'
s2='beta'
f'{s1}{s2:>10}'
#output
'albha beta'
答案 3 :(得分:0)
有很多方法可以做到这一点,这取决于数据的存储方式。确认您的数据存储在相同长度的列表中:
for i in range(len(list1)):
print(“%3i\t%3i” %(list1[i],list2[i]))
这适用于所有版本的python。 3i确保输出的字段宽度为3个字符