打印包含两列的字符串
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)
这应该适用于所有长度的元素(假设它们是字符串。这假设您的数据在两个单独的列表 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 之前和之后。
在 >=python3.6
之前
s1='albha'
s2='beta'
f'{s1}{s2:>10}'
#output
'albha beta'
我正在尝试打印一个包含两个固定列的字符串。例如,我希望能够打印:
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)
这应该适用于所有长度的元素(假设它们是字符串。这假设您的数据在两个单独的列表 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 之前和之后。
在 >=python3.6
之前s1='albha'
s2='beta'
f'{s1}{s2:>10}'
#output
'albha beta'