从列表中删除 None 值而不删除 0 值

发布于 2022-05-26 23:28:53

这是我开始的来源。

我的列表

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 值?

关注者
0
被浏览
11
1 个回答
  • 面试哥
    面试哥 2022-05-26
    为面试而生,有面试问题,就找面试哥。
    >>> 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, 的情况下适应这样做(我不推荐这个代码 - 它只是为了科学目的)

    >>> 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]
    


推荐阅读
知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看