我有一个数组数组,其中每个内部数组都是一个可变大小,每次运行都会改变。 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(),因为它看起来可以工作,但每个数组中的元素数量仍然不匹配。
答案 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))