如何使用dictionary-comprehension删除Python字典中值为空的键
错误原因分析
你当前编写的推导式属于集合推导式,只迭代生成了由值组成的集合,完全丢失了键信息,也无法输出字典类型的结果,这就是运行不符合预期的核心原因。
正确实现
字典推导式需要显式声明键:值的映射结构,你要求的过滤所有内置假值的逻辑,直接用if val即可实现:Python中所有内置假值(包括[]、0、None、0.0、""等)做布尔判断时都会返回False,正好匹配你定义的“空”的过滤规则。
完整可运行代码如下:
thisdict = { "brand": "Ford", "model": "Mustang", "year": '' # [], 0, None, 0.0, "" 等所有假值都会被过滤 } print(thisdict) # 正确的字典推导式写法 thisdict = {key: val for key, val in thisdict.items() if val} print(thisdict)
运行输出结果:
{'brand': 'Ford', 'model': 'Mustang', 'year': ''} {'brand': 'Ford', 'model': 'Mustang'}
内容的提问来源于stack exchange,提问作者StressedBoi69420
相关产品推荐
相关产品推荐

