我的python脚本将格式化的Excel电子表格导入到二维中 名单。空列可以出现在随机索引中,我希望删除所有这些索引。 这样做的最佳方式是什么?
感谢任何建议,
娄
答案 0 :(得分:4)
转置数组,使内部列表成为列,删除空的内部列表,然后再次转置它:
data = zip(*data)
data = [x for x in data if any(x)]
data = zip(*data)
如果将行转换为元组是个问题,请将最后一行替换为以下内容:
data = [list(row) for row in zip(*data)]
这假设您的内部列表是行而不是列,如果您的内部列表已经代表一列,那么您可以执行以下操作(不需要转置):
data = [x for x in data if any(x)]
答案 1 :(得分:0)
从教程:
以下列表理解将转置行和列:
[[row[i] for row in matrix] for i in range(lenOfEachRow)]
一个想法是转置它,线性检查所有0的每一行,删除该行(只需使用delete [indexOfRow]然后将其转置回来。