概述
我想规范化这一点,实际上使每行具有相同数量的列,并且数据中的每列具有相同的宽度,必要时用空格填充.例如,给出以下输入:
( ("row a","a1","a2","a3"),("another row","b1"),("c","x","y","a long string") )
我想要的数据如下所示:
( ("row a ","a3 "),"b1"," "," "),("c ","x ","y ","a long string") )
python 2.6或更高版本的pythonic解决方案是什么?只是为了清楚:我不想打印列表本身,我正在寻找一个解决方案,返回一个新的列表(或元组元组)与填充的值.
>>> d = ( ("row a","a long string") )
进行一次通过以确定每列的最大大小:
>>> col_size = {} >>> for row in d: for i,col in enumerate(row): col_size[i] = max(col_size.get(i,0),len(col)) >>> ncols = len(col_size)
然后进行第二遍,将每列填充到所需的宽度:
>>> result = [] >>> for row in d: row = list(row) + [''] * (ncols - len(row)) for i,col in enumerate(row): row[i] = col.ljust(col_size[i]) result.append(row)
这给出了期望的结果:
>>> from pprint import pprint >>> pprint(result) [['row a ','a1','a2','a3 '],['another row','b1',' ',' '],['c ','x ','y ','a long string']]
def align(array): col_size = {} for row in array: for i,len(col)) ncols = len(col_size) result = [] for row in array: row = list(row) + [''] * (ncols - len(row)) for i,col in enumerate(row): row[i] = col.ljust(col_size[i]) result.append(row) return result
总结
以上是编程之家为你收集整理的如何规范化python中的字符串列表?全部内容,希望文章能够帮你解决如何规范化python中的字符串列表?所遇到的程序开发问题。
如果您也喜欢它,动动您的小指点个赞吧