我想打印一个列表列表,其中每个字符串的宽度固定为其相应列的最大长度。这是我尝试过的。
lists = [['abcde', u'一二三四五'],
[u'六七八九十零', 'fghij']]
# calculate the maximum length of each column
column_max_len = [max(len(item) for item in t) for t in zip(*lists)] # [6, 5]
# format print
for row in lists:
s = '\t'.join(['{value:<{width}}'.format(value=row[idx].encode('utf-8'), width=column_max_len[idx])
for idx, item in enumerate(row)])
print(s)
输出是,
abcde 一二三四五
六七八九十零 fghij
我的预期结果是,
abcde 一二三四五
六七八九十零 fghij