在列表列表中查找每列的最大长度

时间:2011-05-16 14:31:07

标签: python

我正在使用Python 2.6以及xlwt和pyodbc模块从MS SQL Sever(2008)上的视图创建excel报告。为了以编程方式在excel中设置每个字段的正确宽度,我想检索每列中值的最大长度。

例如

foo=[[1, 'This is a test',12039],[12, 'test',1235]]

会导致[2,14,5]

我确信有一个简单的解决方案,我只是忽略了。

2 个答案:

答案 0 :(得分:8)

[max(len(str(x)) for x in line) for line in zip(*foo)]

答案 1 :(得分:0)

如果输入列表很长,itertools.izip()可能是比zip()更好的选择,因为它将返回迭代器而不是长列表,因此可以节省一些内存空间。