Python 从列表中删除空值
本文讨论如何从Python列表中删除空值。在继续之前,有必要了解什么是空值?什么是列表?为什么需要从列表中删除空值。让我们继续深入理解这些。我们从空值开始。
空值被定义为没有值的参数。它表示值的缺失。Python有一个特殊的”空值”,表示变量不指向任何东西。
但是在Python中没有 null ,取而代之的是 NONE ,表示缺少值。
Python中的None
NONE是一个关键字,表示空字符串或缺失值,没有输出。在Python中,None是一个NONE TYPE类的对象,并且是Python的一等公民,它不被定义为0或任何其他值。
- None可以分配给任何变量。
-
在Python中不被视为空字符串。
-
它与0、False或空字符串不相同。
-
只有None可以等于None。
None的表示
可以简单地声明一个变量等于None,而不执行任何操作,表示为None。
variable = None
什么是Python中的列表
Python中有四种内置数据类型(列表,元组,字典,集合)。列表是其中之一,用于将多个元素存储在单个变量中。它们使用方括号[ ]创建。列表是可变的,这意味着它们可以更改它们的值。列表对于插入和删除操作非常有用。
为什么需要在Python中删除None
假设我们有一个大型数据集,通过分析我们发现了缺失值或空值。为了确保数据是干净的,必须从数据集中删除这些空值。空值会影响模型的性能和准确性,因此在处理数据之前删除不需要的空值是必要的,以使其有效。
如何从Python列表中删除None
我们可以通过以下五种方法从Python中删除None。让我们一一讨论这些方法,并通过示例进行演示。
使用filter()方法
在这种方法中,我们过滤包括空列表在内的None值。这是从Python列表中删除空值的最简单方法。
示例
下面的示例使用filter()方法从my_list中删除所有的空字符串,并将它们重新赋值给 my_list.my_list = ['hi','Joy','','whats','','up']
如下所示。
my_list = ['hi', 'Joy', '', 'whats', '', 'up']
print(my_list)
my_list = list(filter(None,my_list))
print(my_list)
输出
当我们执行上述代码时,会生成以下输出 –
['hi', 'Joy', '', 'whats', '', 'up']
['hi', 'Joy', 'whats', 'up']
使用朴素方法
朴素方法也可以用于从列表中删除None。我们使用for循环检查值是否为None,如果是的话则忽略,并将剩余的值添加到另一个列表中。
示例
在下面的程序中,一个列表被初始化为包含两个None值的几个值。创建一个新的空列表,并使用朴素方法通过原始列表运行一个for循环来检查每个元素是否等于None。
# List with none values
my_list = [4,5, True, False, None, 'List', None]
# Initialize filtered list
new_list = []
# Using for loop
for ele in my_list:
if ele != None:
new_list.append(ele)
print ("List with None values: ", my_list)
print ("List without None values: ", new_list)
输出
执行以上程序后,生成的输出如下:
List with None values: [4, 5, True, False, None, 'List', None]
List without None values: [4, 5, True, False, 'List']
使用join()方法
我们有另一种方法来从列表中删除None,那就是使用join()函数。
示例
下面是一个例子,展示如何使用join()方法来从列表中删除None。
myList = ['', 'Salad','is', '','Good', '']
print("Contents of the List : ",myList)
# Remove Empty Value from List
newList = ' '.join(myList).split()
print("Contents of the List after removing nulls: ",newList)
输出
执行上述程序以查看如下输出 –
Contents of the List : ['', 'Salad', 'is', '', 'Good', '']
Contents of the List after removing nulls: ['Salad', 'is', 'Good']
使用列表推导
我们使用列表推导来移除空值。这是一种从现有数据类型(如列表、元组和集合)创建新列表的方式。在这种方法中,我们遍历列表,但不包括空列表。
示例
以下是一个示例,演示如何使用列表推导来移除空值。
# List with none values
my_list = [0,1, True, None, False]
# Using List comprehension to remove none values
new_list = [ ele for ele in my_list if ele is not None ]
print("List with None values: ", my_list)
print("List without None values", new_list)
输出
执行以上程序,可以看到以下输出结果:
List with None values: [0, 1, True, None, False]
List without None values [0, 1, True, False]
使用Enumerate函数
Enumerate是一个内置函数,用于遍历列表、元组、字典和字符串。它允许在序列中进行迭代,同时跟踪索引和元素。
示例
在下面的程序中,创建了一个名为my_list的列表,其中包含字符串。然后,从现有列表创建一个新列表,删除所有的空格并修改列表。
my_list = [' ', 'myfile', ' ', 'is', 'running', ' ']
my_list = [i for a,i in enumerate(my_list) if i!=' ']
print (my_list)
输出
执行以上程序将生成以下输出。
['myfile', 'is', 'running']
结论
在本文中,我们讨论了从列表中删除null的各种方法。我逐步解释了删除null值的步骤。我们已经了解了各种不同的方法,如filter()、列表解析、朴素方法、join方法和enumerate函数,它们可以帮助我们从列表中删除null值。