python中filter函数用法

直接举例子,有这样一个列表

list = [1, 2, 3, 4, 0, 0, 3, 0, 2]
我现在想去掉list中的所有的0,初级想法:

for i in range(len(list)):
    if list[i] == 0:
         list.pop(i)
这样写是肯定不对的,因为在删去第5个零的时候,第六个零已经到了第五个位置,所以循环的下一次会直接判断第七个数字3而跳过了第6个零


采用filter函数:

def f(x):
    if x != 0:
        return x

list = [item for item in filter(f, list)] 
这样就可以啦




你可能感兴趣的:(python中filter函数用法)