変数「info」に次の文字列があるとします。
abc: 234234
aadfa: 235345
bcsd: 992
Python では、「情報」を次のようにフォーマットする最も簡単な方法は何ですか?
abc: 234234
aadfa: 235345
bcsd: 992
変数「info」に次の文字列があるとします。
abc: 234234
aadfa: 235345
bcsd: 992
Python では、「情報」を次のようにフォーマットする最も簡単な方法は何ですか?
abc: 234234
aadfa: 235345
bcsd: 992
これはうまくいきます:
>>> s = """abc: 234234
... aadfa: 235345
... bcsd: 992"""
>>> print s
abc: 234234
aadfa: 235345
bcsd: 992
これで、新しい行とスペースで分割して、行ごとに各アイテムを取得できます。
>>> pairs = [x.split() for x in s.split('\n') ]
>>> pairs
[['abc:', ' 234234'], ['aadfa:', ' 235345'], ['bcsd:', ' 992']]
次に、各文字列をフォーマットします。
>>> for pair in pairs:
... print '{0:10} {1}'.format(pair[0], pair[1])
...
abc: 234234
aadfa: 235345
bcsd: 992
{0:10}
文字列の書式設定で使用する方法に注意してください。これは、その引数を 10 文字でフォーマットすることを意味します。
次のコードが役立つことを願っています。
>>> import math
>>> info = ["abc: 234234", "aadfa: 235345", "bcsd: 992"]
>>> info = [item.split() for item in info]
>>> maxlen = max([len(item[0]) for item in info])
>>> maxlen = math.ceil(maxlen/8.0)*8
>>> info = [item[0]+" "*(maxlen-len(item[0]))+item[1] for item in info]
最終的な長さの作成方法を制御できます。