ハイスコア テーブルの 2 つの列を表示するように文字列をフォーマットしようとしています。print を使用する場合、Python はこれをうまく行うことができます。
print '{0:2d} {1:3d} {2:4d}'.format(x, x*x, x*x*x)
しかし、フォーマットされた文字列を使用しようとすると、より困難になるようです。これは私が取得しようとしている結果です:
#for name, score in list: prints the following
1. FirstName LastName 45000
2. First LastName 78000
3. Fst Lst 11123
4. Name Name 40404
5. llll lll 12345
これはすべて、pygtk ラベルに入る 1 つの文字列です。現在、私はこれを持っています:
score_string += "%i. %-15.12s\t%15s\n" % (index, name, score)
信頼できない結果をもたらします。現在のテスト データは次のように表示されます。
1. Firstname Lastname 49900
2. First Last 93000
3. Name Name 6400
そのリストの最初の名前は残りの部分よりも長いため (文字数ではなく幅)、タブはスコアの位置を強制的にずらします。文字列の長さだけでなく、文字列の幅も考慮してこれを行う方法はありますか?