📜  Python – 删除字典列表中的空值类型

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

Python – 删除字典列表中的空值类型

有时,在使用Python字典时,我们需要删除所有实际上为 Null 的值,即不包含任何有意义的值并且要在处理数据之前删除,这可以是空字符串、空列表、字典甚至 0。这在数据预处理中有应用。让我们讨论可以执行此任务的某些方式。

方法#1:使用列表推导
这是可以执行此任务的粗略方式的简写。在此我们只使用有效值重新制作字典。

# Python3 code to demonstrate working of 
# Remove None value types in dictionaries list
# Using list comprehension
  
# initializing list
test_list = [{'gfg' : 4, 'is' : '', 'best' : []}, {'I' : {}, 'like' : 5, 'gfg' : 0}]
  
# printing original list
print("The original list is : " + str(test_list))
  
# Remove None value types in dictionaries list
# Using list comprehension
res = [ele for ele in ({key: val for key, val in sub.items() if val} for sub in test_list) if ele]
                                         
# printing result 
print("The filtered list : " + str(res)) 
输出 :
The original list is : [{'is': '', 'best': [], 'gfg': 4}, {'like': 5, 'gfg': 0, 'I': {}}]
The filtered list : [{'gfg': 4}, {'like': 5}]

方法 #2:使用filter() + lambda + 列表推导
上述方法的组合可以用来解决这个问题。在此,我们使用 filter() + lambda 来执行上述方法中的条件语句任务,以减少嵌套级别。

# Python3 code to demonstrate working of 
# Remove None value types in dictionaries list
# Using filter() + lambda + list comprehension
  
# initializing list
test_list = [{'gfg' : 4, 'is' : '', 'best' : []}, {'I' : {}, 'like' : 5, 'gfg' : 0}]
  
# printing original list
print("The original list is : " + str(test_list))
  
# Remove None value types in dictionaries list
# Using filter() + lambda + list comprehension
res = list(filter(None, ({key : val for key, val in sub.items() if val} for sub in test_list)))
                                         
# printing result 
print("The filtered list : " + str(res)) 
输出 :
The original list is : [{'is': '', 'best': [], 'gfg': 4}, {'like': 5, 'gfg': 0, 'I': {}}]
The filtered list : [{'gfg': 4}, {'like': 5}]