这是我开始的来源。
我的列表
L = [0, 23, 234, 89, None, 0, 35, 9]
当我运行这个:
L = filter(None, L)
我得到这个结果
[23, 234, 89, 35, 9]
但这不是我需要的,我真正需要的是:
[0, 23, 234, 89, 0, 35, 9]
因为我正在计算数据的百分位数,而 0 有很大的不同。
如何在不删除 0 值的情况下从列表中删除 None 值?
>>> 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]
只是为了好玩,这里是你如何在filter不使用lambda, 的情况下适应这样做(我不推荐这个代码 - 它只是为了科学目的)
filter
lambda
>>> 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]