我有一个清单,例如:
x = [['aaa', 'bb','ccc'], ['ophkn','h','aa']]
假设len(x[i])
对于i
(上例中的0和1)的所有有效值都是相同的。
现在,我需要构造一个列表,其中包含x
的每个子列表中第j项的最大长度。也就是说,我需要知道以下几点:
max(len(x[i][j]))
对于固定值j
的i
的所有值
因此,在我上面的例子中,我将产生如下列表:
[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
,使它在管状格式对齐,请分享!你知道吗
你可以使用拉链和一个splat,例如:
然后从结果中使用适当的
str.format
。你知道吗在生成器表达式上使用
max()
。例如,给定j
等于1:或者,循环遍历
j
的所有值:使用
zip()
是另一种方法:正如Robb在评论中指出的,对于任意数量的行,一种通用而有效的方法是:
相关问题 更多 >
编程相关推荐