阵列数组到表格式

时间:2014-02-14 01:10:51

标签: python arrays

我有一个数组数组,其中每个内部数组都是一个可变大小,每次运行都会改变。 e.g:

a = [[T1], [4, 5, 6], ['a', 'b']]

我想要做的是将其打印为表格,第一个数组为col_1,第二个为col_2,然后为col_3。目前,只有3个cols。期望的结果:

COL1     COL2     COL3
----     ----     ----
T1       4        a
         5        b
         6      

我想我有两个主要问题:
1.可以这样做吗 2.如何计算每个数组的差异大小 - 不是在格式方面,而是循环遍历可能没有格式的元素。

非常感谢。

P.S。我正在尝试使用zip(),因为它看起来可以工作,但每个数组中的元素数量仍然不匹配。

2 个答案:

答案 0 :(得分:2)

您与zip走在正确的轨道上。要填写没有任何内容的内容,请使用itertools.zip_longest(在python 2中,izip_longest):

for line in zip_longest(*a,fillvalue=''):
    print('\t'.join(map(str,line)))

T1      4       a
        5       b
        6       

答案 1 :(得分:2)

  

我正在尝试使用zip(),因为它看起来可以正常工作,但每个数组中的元素数量仍然不匹配。

是的,正如文档所说,zip会在任何阵列停止后立即停止。

但是itertools模块有一个名为zip_longest(或izip_longest,在2.x中)的函数可以解决这个问题。

你只需要指定你想要的填充值 - 在这种情况下,可能是''

for row in itertools.zip_longest(*a, fillvalue=''):
    print('\t'.join(row))