📜  Python|从列表中删除无值

📅  最后修改于: 2022-05-13 01:54:33.710000             🧑  作者: Mango

Python|从列表中删除无值

由于机器学习的到来,现在的重点比以往任何时候都转移到处理None值上,这背后的原因是它是数据预处理的基本步骤,然后再将其送入进一步的技术执行。因此,必须删除基本和知识中的None值。让我们讨论实现这一目标的某些方法。

方法#1:朴素的方法
在 naive 方法中,我们遍历整个列表并将所有过滤的非 None 值附加到一个新列表中,因此准备好执行后续操作。

# Python3 code to demonstrate 
# removing None values in list
# using naive method 
  
# initializing list
test_list = [1, None, 4, None, None, 5, 8, None]
  
# printing original list 
print ("The original list is : " + str(test_list))
  
# using naive method 
# to remove None values in list
res = []
for val in test_list:
    if val != None :
        res.append(val)
  
# printing result
print ("List after removal of None values : " +  str(res))
输出:
The original list is : [1, None, 4, None, None, 5, 8, None]
List after removal of None values : [1, 4, 5, 8]


方法#2:使用列表推导
使用朴素方法和增加代码行的较长任务可以使用这种方法以紧凑的方式完成。我们只需检查 True 值并构建新的过滤列表。

# Python3 code to demonstrate 
# removing None values in list
# using list comprehension
  
# initializing list
test_list = [1, None, 4, None, None, 5, 8, None]
  
# printing original list 
print ("The original list is : " + str(test_list))
  
# using list comprehension
# to remove None values in list
res = [i for i in test_list if i]
  
# printing result
print ("List after removal of None values : " +  str(res))
输出:
The original list is : [1, None, 4, None, None, 5, 8, None]
List after removal of None values : [1, 4, 5, 8]


方法 #3:使用filter()
filter函数是执行此特定任务的最简洁易读的方法。它检查列表中的任何 None 值并删除它们并形成没有 None 值的过滤列表。

# Python3 code to demonstrate 
# removing None values in list
# using filter()
  
# initializing list
test_list = [1, None, 4, None, None, 5, 8, None]
  
# printing original list 
print ("The original list is : " + str(test_list))
  
# using filter()
# to remove None values in list
res = list(filter(None, test_list))
  
# printing result
print ("List after removal of None values : " +  str(res))
输出:
The original list is : [1, None, 4, None, None, 5, 8, None]
List after removal of None values : [1, 4, 5, 8]