在Python中分别将每列列表(包含unicode字符串)打印为固定宽度

时间:2016-09-25 15:06:47

标签: python unicode pretty-print

我想打印一个列表列表,其中每个字符串的宽度固定为其相应列的最大长度。这是我尝试过的。

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

0 个答案:

没有答案