擅长:python、mysql、java
<p>如果没有项的最大大小,因此无法使用格式说明符,则可以计算当前最大长度并使用<code>str.center</code>(或<code>str.rjust</code>):</p>
<pre><code>>>> from collections import namedtuple
>>> Record = namedtuple('Record', ['name', 'lvl', 'value'])
>>> items = [Record('a', 5, 1000), Record('aaaaaa', 15376576, 17.8), Record('aaaaaaaaaaaaaaaa', 7462, 1000)]
>>> max_name_length = len(max(items, key=(lambda x: len(x[0])))[0])
>>> max_lvl_length = len(str(max(items, key=(lambda x: len(str(x[1]))))[1]))
>>> max_value_length = len(str(max(items, key=(lambda x: len(str(x[2]))))[2]))
>>> for item in items:
... print '%s %s %s' % (item.name.center(max_name_length),
... str(item.lvl).center(max_lvl_length),
... str(item.value).center(max_value_length))
...
a 5 1000
aaaaaa 15376576 17.8
aaaaaaaaaaaaaaaa 7462 1000
</code></pre>