首页 > 解决方案 > 从列表中删除空值,但索引为 0 的元素

问题描述

蟒蛇 3

我想从列表中删除所有空值,但索引为 0 的元素。换句话说,让我们有两个列表:

[1, "screen", "keyboard", "mouse", , , , "router", , ,]
[, "ball", "dumbbell", "bar-bell", , , , "sneakers"]

结果应该是:

[1, "screen", "keyboard", "mouse", "router"]
[, "ball", "dumbbell", "bar-bell", "sneakers"]

现在我正在尝试实现一个过滤器:

def delete_empty_values(a_list):
    return list(filter(None, a_list))

但是这个过滤器会删除包括元素 0 在内的所有内容。

好吧,使用过滤器不是教条。你能帮我用最pythonyc的方式来实现计划吗?

标签: python-3.x

解决方案


这里有几种方法:

[] if not a_list else [a_list[0], *filter(None, a_list[1:])]

[e for i, e in enumerate(a_list) if not (e is None and i)]

推荐阅读