假设我有相同长度的任意数量的字符串,例如:
'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。
答案 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'