Skip to main content
 首页 » 编程设计

python之从列表中的字典中删除空值的有效方法是什么

2025年05月04日9三少

从保存在列表中的字典中删除空值的有效方法是什么。

list1 = [{'l1k1': 'l1v1', 'l1k2': 'l1v2'}, {'l2k1': 'l2v1', 'l2k2': ''}] 
list2 = [] 
for l in list1: 
  d = {} 
  for k, v in l.items(): 
    if v.strip() is not None or v.strip() != '': 
      d[k] = v 
  list2.append(d) 
print(list2) 

实际输出:

[{'l1k1': 'l1v1', 'l1k2': 'l1v2'}, {'l2k1': 'l2v1', 'l2k2': ''}] 

预期输出:

[{'l1k1': 'l1v1', 'l1k2': 'l1v2'}, {'l2k1': 'l2v1'}] 

请您参考如下方法:

试试这个:

list2 = [{k:v for k,v in i.items() if v!= '' or v.strip() != ''} for i in list1] 

我们可以同时使用 dict-comprehension 和 list-comprehension。我们循环遍历 list1 的每个元素(这是一个字典),并只取那些键值对,其中值或 value.strip() 中的相应键字典不是空字符串。

用于取消带有 None 类型的值的较短版本:

list2 = [{k:v for k,v in i.items() if v} for i in list1]