Python程序 用于从列表中删除空值

Python程序 用于从列表中删除空值

在Python编程中,经常会遇到需要从列表中删除空值的情况。例如,从Excel表格中读取数据存储到Python的列表中时,可能会出现某些单元格为空的情况,此时就需要将这些空值从列表中删除。

下面我们将介绍如何使用Python编写代码,从列表中删除空值。

简单方法:使用列表推导式

在Python中,我们可以使用列表推导式来过滤掉列表中的空值。具体实现方法如下:

>>> a = [1, 2, None, 8, None, 10]
>>> b = [i for i in a if i is not None]
>>> b
[1, 2, 8, 10]

在上面的代码中,我们先定义了一个包含空值的列表a,然后使用列表推导式,将a中非空的元素存储到新列表b中,最后输出结果b。

逐个删除:使用循环

上面的方法虽然简单易行,但只适用于列表中包含None的情况。如果列表中还包含其他类型的空值,例如空字符串,空列表等,就不能使用上述简单方法,需要使用循环逐个删除空值。

>>> a = [1, '', 3, [], None, 7]
>>> i = 0
>>> while i < len(a):
...     if not a[i]:
...         del a[i]
...     else:
...         i += 1
>>> a
[1, 3, 7]

在上面的代码中,我们使用while循环和条件语句来逐个判断列表a中的元素是否为空值。如果为空值,则使用del语句从列表中删除该元素;否则将i加1,继续判断下一个元素。

定义函数:重复使用代码

如果需要经常从列表中删除空值,则可以将上述代码封装为一个函数,以便重复使用。实现方法如下:

def remove_empty_value(a):
    i = 0
    while i < len(a):
        if not a[i]:
            del a[i]
        else:
            i += 1
    return a

# 使用函数删除空值
a = [1, '', 3, [], None, 7]
b = remove_empty_value(a)
print(b)

在上面的代码中,我们先定义了一个名为remove_empty_value的函数,该函数接收一个列表a作为参数,返回删除空值后的新列表。然后我们使用该函数,将列表a作为参数传递给该函数,得到删除空值后的新列表b,并输出结果。

使用filter()函数:更简洁的方法

在Python中,还可以通过使用filter()函数来过滤掉列表中的空值。

>>> a = [1, '', 3, [], None, 7]
>>> b = list(filter(None, a))
>>> b
[1, 3, 7]

在上面的代码中,我们使用了filter()函数,将原列表a中不为空的值过滤出来并存储到新列表b中。需要注意的是,返回值为一个迭代器对象,需要使用list()函数将其转换为列表。

结论

Python提供了多种方法用于从列表中删除空值,我们可以根据实际情况选择不同的方法。如果列表中只包含None类型的空值,可以使用简单的列表推导式;否则可以使用循环逐个删除或使用filter()函数过滤掉空值。需要从多个列表中删除空值时,可以封装上述代码为一个函数,以便重复使用。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程