mongotop mongotop - 1 month ago 9
Python Question

remove None value from a list without removing the 0 value

This was my source I started with.

My List

L= [0, 23, 234, 89, None, 0, 35, 9]


When I run this :

L = filter(None, L)


I get this results

[23, 234, 89, 35, 9]


But this is not what I need, what I really need is :

[0, 23, 234, 89, 0, 35, 9]


Because I'm calculating percentile of the data and the 0 make a lot of difference.

How to remove the None value from a list without removing 0 value?

EDIT:

Changed
list
to
L
to avoid shadowing the built in
list
function. Read the comment below.

Answer
>>> L = [0, 23, 234, 89, None, 0, 35, 9]
>>> [x for x in L if x is not None]
[0, 23, 234, 89, 0, 35, 9]

Just for fun, here's how you can adapt filter to do this without using a lambda, (I wouldn't recommend this code - it's just for scientific purposes)

>>> from operator import is_not
>>> from functools import partial
>>> L = [0, 23, 234, 89, None, 0, 35, 9]
>>> filter(partial(is_not, None), L)
[0, 23, 234, 89, 0, 35, 9]