2015-04-01 17 views

回答

3

使用format

>>> input = [477 , 4770, 47711,] 
>>> ["{:<5}".format(i) for i in input] 
['477 ', '4770 ', '47711'] 

>>> list(map("{:<5}".format , input))   # Just Another Way using map 
['477 ', '4770 ', '47711'] 
+0

嗨,空间应该在尾巴不在乞讨。怎么做 – user3675188 2015-04-01 12:38:31

+0

@devinformatics是的,已经做到了。重新加载您的页面。谢谢 – 2015-04-01 12:44:50

+1

你不需要'lambda'。只需传入绑定到格式字符串的方法:'list(map(“{:<5}”。format,input))' – 2015-04-01 12:55:05

3

做到这一点,您可以使用str.ljust

>>> lst = [477 , 4770, 47711,] 
>>> [str(x).ljust(5) for x in lst] 
['477 ', '4770 ', '47711'] 
+1

男人,你发布时间我编辑:( – 2015-04-01 12:40:13

+1

@BhargavRao对不起,以为你会提出另一种解决方案'format' – 2015-04-01 12:41:09

1

您可以使用此解决方案。

input = [477 , 4770, 47711,] 
[str(i).ljust(5) for i in input] 

结果...

['477 ', '4770 ', '47711'] 
1

交替.format可以使用ljust

例如:

>>> x = 'padme' 
>>> x = x.ljust(10, ' ') 
>>> x 
'padme  ' 

此外,还存在rjust添加前导字符。

0

您必须迭代整个字符串来计算数字。但在这种情况下,我认为你可以用count()(这是,仍然在技术上迭代),然后有if语句将附加适当数量的空间到字符串。