从保存在列表中的字典中删除空值的有效方法是什么。在
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)
实际产量:
^{pr2}$预期产量:
[{'l1k1': 'l1v1', 'l1k2': 'l1v2'}, {'l2k1': 'l2v1'}]
试试这个:
我们可以同时使用听写理解和列表理解。我们对
list1
的每个元素(它是一个字典)进行循环,只取字典中对应键的值或value.strip()
不是空字符串的那些键值对。在用于取消
^{pr2}$None
类型的值的简短版本还包括:这里有一个简单的替代方法,不使用列表理解,这可能会让您更容易理解:
试试这个:
注意,这里要做的正确的检查是
^{pr2}$v and v.strip()
,它确保字符串不是None
,也不是所有的空格。它按预期工作:它是高效的,因为它使用列表理解和字典理解,这比显式循环更快。而且,它非常简洁和惯用:)
相关问题 更多 >
编程相关推荐