📜  python 从列表中删除空值 - Python (1)

📅  最后修改于: 2023-12-03 14:46:12.092000             🧑  作者: Mango

Python 从列表中删除空值

当我们处理列表时,常常会遇到需要删除空值的需求。在Python中,我们可以通过以下几种方式来删除列表中的空值。

方法一:使用列表推导式
lst = [1, None, 2, '', 3, ' ', 4, [], {}]
lst = [x for x in lst if x]
print(lst)

输出:

[1, 2, 3, ' ', 4]

在这个方法中,我们使用一个列表推导式来过滤掉列表中的空值。在过滤条件中,我们使用了Python的真值表达式,即只有当x为True时,if x才会成立,否则将被过滤掉。

方法二:使用filter函数
lst = [1, None, 2, '', 3, ' ', 4, [], {}]
lst = list(filter(lambda x: x, lst))
print(lst)

输出:

[1, 2, 3, ' ', 4]

在这个方法中,我们使用了Python内置的filter函数来过滤掉列表中的空值。在过滤函数中,我们使用了Python的真值表达式,即只有当x为True时,filter才会返回x,否则将被过滤掉。

方法三:使用列表索引删除法
lst = [1, None, 2, '', 3, ' ', 4, [], {}]
i = 0
while i < len(lst):
    if not lst[i]:
        del lst[i]
    else:
        i += 1
print(lst)

输出:

[1, 2, 3, ' ', 4]

在这个方法中,我们使用了一个while循环来遍历列表,并使用Python的索引删除法来删除空值。当我们删除了一个元素后,需要将当前的索引i往前移动一位,否则会出现跳过元素的情况。