我有一个列表,例如:
x = [['aaa', 'bb','ccc'], ['ophkn','h','aa']]
假设对于所有有效的i (在上面的示例中为0和1),
len(x[i])
都相同。
现在,我需要构造一个包含每个子列表中第j个项目的最大长度的列表x
。也就是说,我需要知道以下内容:
对于固定的j
值,在所有i值中的max(len(x[i][j]))
因此,在我的上面的示例中,我将生成以下列表:
[5, 2, 3]
因为
max(len('aaa'),len('ophkn')) --> 5
max(len('bb'),len('h')) --> 2
max(len('ccc'),len('aa')) --> 3
我试图查找这些最大值的原因是为了打印填充空间的表格,例如下面的表格:
aaa bb ccc
ophkn h aa
所以,如果有人有一种优雅的方法打印出
x
并使其呈现管状格式对齐,请分享!
[max(len(b) for b in a) for a in zip(*x)]
。 - Robb