2012-12-11 34 views
1

空间打印数字我有我想打印号码清单如下:在Python3

  1 
      1 
      3 
     11 
     58 
     451 
     4 461 
    49 957 
    598 102 
    7 437 910 
94 944 685 

目前我通过以下丑陋的代码实现这一点:

for count in counts: 
    s = str(count)[::-1] 
    s = ' '.join([s[i:i+3][::-1] for i in range(0,len(s),3)][::-1]) 
    print('{:>11}'.format(s)) 

反正是有那format可以立即做到这一点吗?我在文档中找不到任何东西。

+0

不要紧_how_丑陋的代码时,你可以在证据充分的功能隐藏:-) – paxdiablo

+0

当然,这是真的。但Python的一个信条是简单,而且看起来并不简单。 ;-) – nvcleemp

回答

1

您可以使用千分隔的字符串格式化并替换您的喜好是这样的:

>>> nums = (1, 3, 11, 58, 451, 4461, 49957, 598102, 7437910, 94944685) 
>>> for num in nums: 
     print('{:>11,}'.format(num).replace(',', ' ')) 

      1 
      3 
     11 
     58 
     451 
     4 461 
    49 957 
    598 102 
    7 437 910 
94 944 685