Python程序:移除列表中的空值
本文讨论如何从Python列表中移除空值。在继续之前,需要了解什么是空值?什么是列表?为什么需要从列表中移除空值?让我们继续讨论这个主题,并详细了解它们。让我们从空值开始。
空值定义为没有值的参数。它表示值不存在。Python有一个特殊的“空”值,表示变量不指向任何内容。
但在Python中没有**null**,有**None**表示值的缺失。
Python中的None
NONE是一个关键字,它表示空字符串或缺失值,没有输出。在Python中,None是NONE类型类的对象,是Python中的第一类公民,它不被定义为0或任何其他值。
None可以赋值给任何变量。
它在Python中不被认为是空字符串。
它与0、False或空字符串不同。
只有None可以是None。
None的表示
None可以简单地写成None,而无需执行任何操作,方法是将变量声明为等于None。
variable = None
Python中的列表是什么?
Python中有4种内置数据类型(列表、元组、字典、集合)。列表是其中一种,用于在一个变量中存储多个项目。它们使用方括号[ ]创建。列表是可变的,这意味着它们是可更改的;它们具有更改其值的能力。它对于插入和删除操作非常有用。
为什么需要在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']
结论
在本文中,我们讨论了从列表中移除空值的各种方法。我简单地一步一步地解释了空值的移除。我们已经看到了所有可以帮助我们从列表中移除空值的不同方法,例如filter()、列表推导式、朴素方法、join方法和enumerate函数。
数据结构
网络
关系数据库管理系统 (RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP