Python 如果所有元素均为0,则删除子列表
我有这个清单Python 如果所有元素均为0,则删除子列表,python,list,for-loop,if-statement,Python,List,For Loop,If Statement,我有这个清单 lst = [ [2,0,1], [0,0,0], [3,2,4], [0,0,0,0] ] 我正在寻找一种方法来删除那些只有数字0的列表 因此,预期产出为: lst = [ [2,0,1], [3,2,4] ] 试试这个列表 [l for l in lst if not all(x == 0 for x in l)] 试试这个列表 [l for l in lst if not all(x == 0 for x in l)] 使用列表理解和任何: [l for l in
lst = [ [2,0,1], [0,0,0], [3,2,4], [0,0,0,0] ]
我正在寻找一种方法来删除那些只有数字0的列表
因此,预期产出为:
lst = [ [2,0,1], [3,2,4] ]
试试这个列表
[l for l in lst if not all(x == 0 for x in l)]
试试这个列表
[l for l in lst if not all(x == 0 for x in l)]
使用列表理解和任何:
[l for l in lst if any(l)]
使用列表理解和任何:
[l for l in lst if any(l)]
我认为最好的方法是遍历每个子列表并删除所有零。如果剩下的子列表为空,请删除该子列表。你需要提供一些“我尝试过的”来获得实际帮助。你所说的“自动方式”是什么意思?没有什么是自动的:你必须编写算法来做事情。
list(filter(any,lst))
是一种有趣的方法,如果你的列表只有int。我认为最好的方法是循环遍历每个子列表并删除所有的零。如果剩下的子列表为空,请删除该子列表。你需要提供一些“我尝试过的”来获得实际帮助。你所说的“自动方式”是什么意思?没有什么是自动的:你必须编写算法来做事情。list(filter(any,lst))
是一种有趣的方式,如果你的列表只有int。