包含固定长度字符串的Python autoformat字符串

时间:2016-06-22 08:56:30

标签: python string python-3.x

假设我有相同长度的任意数量的字符串,例如:

'01'
'02'
'03'

我需要将它们格式化为具有固定长度的“一行网格”(用空格分隔)。所以,我想做这样的事情:

>>'{some expression, 15, left}'.format(['01','02','03'])
'01 02 03       '

>>'{some expression, 15, right}'.format(['01','02','03'])
'       01 02 03'

是否可以使用format或其他优雅方式这样做?

我想使用Python 3。

2 个答案:

答案 0 :(得分:2)

这是使用内置函数format的问题的合适解决方案。

list = ['01','02','03']
list1=' '.join(list)
list_right='{:>15}'.format(list1)   #right 
list_left='{:<15}'.format(list1)    #left
print (list_right)

此处,<强制字段在可用空间内左对齐(这是大多数对象的默认值),而>强制字段在可用空间内右对齐(这是数字的默认值。)

答案 1 :(得分:1)

此解决方案采用lambda函数,更灵活 -

list123 = ['01','02','03']
x=15                                     #limiting factor for str length
s123 = ' '.join(list123)                 #list elements become a str seperated by a space
s_space= lambda x:(x-len(s123))*' '      #store x-len(s123) spaces
s_left=s_space(x) +s123
s_right=s123 + s_space(x)
print(s_left)

输出:' 01 02 03'