1

次のように印刷したい番号のリストがあります。

          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これをすぐに達成できる方法はありますか?ドキュメントには何も見つかりませんでした。

4

1 に答える 1

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
于 2012-12-11T09:41:26.930 に答える