python中二维列表能删除为空的元素吗

Python010

python中二维列表能删除为空的元素吗,第1张

oldlist=[[1, 1, 1, 1, 1],  [1, 1, 1, 1, 2],  [2, 2, 2, 2, 4, 4], [ 8, 8, 8, 8, 8],  [16, 16], [], [] , []]

newlist=[x for x in oldlist if x] #删除空列表[]

coutlist=[x.count(2) for x in newlist] #计算子列表中2的个数

因为对原列表删改的时候,len(list)是实时变化的,且remove、pop那些函数只能删除第一个遇到的符合条件的元素,且你的要求是只删除空元素,而对其他如果有重复的元素不进行修改,所以也不能用元组set.

那我有两个方法,第一个是记录list中[]出现的位置,之后按照反向的顺序依次remove掉,这样就不会因为列表长度在变化而删错元素;

第二个是直接删除空元素,但记录list长度的实时变化,当list长度不再变化,则list中的空元素都已经删完了。