Python中如何移除字典列表里值为N/A的键
移除字典列表中值为"N/A"的键的Python实现
给定如下字典列表,需要移除所有值为"N/A"的键:
Data = [ { "Area": "Los Angeles", "Idle": "N/A", "Downtime": "N/A", "Production": "N/A", "Total": "0.00 kWh", "Total_Cost": "$ 0.00", "Total_Idle_Cost": "N/A" }, { "Area": "Oklohoma", "Idle": "N/A", "Downtime": "N/A", "Production": "N/A", "Total": "0.00 kWh", "Total_Cost": "$ 0.00", "Total_Idle_Cost": "N/A" }]
方法一:生成新的清理后列表(推荐)
用列表推导式结合字典推导式,简洁高效地生成过滤后的新列表,不会修改原始数据:
cleaned_data = [{k: v for k, v in item.items() if v != "N/A"} for item in Data]
执行后,cleaned_data即为期望的结果:
[ { "Area": "Los Angeles", "Total": "0.00 kWh", "Total_Cost": "$ 0.00" }, { "Area": "Oklohoma", "Total": "0.00 kWh", "Total_Cost": "$ 0.00" } ]
方法二:原地修改原始列表
如果需要直接修改原始列表,可通过循环遍历每个字典,先收集要删除的键再批量删除(避免遍历字典时修改结构引发异常):
for item in Data: keys_to_remove = [k for k, v in item.items() if v == "N/A"] for k in keys_to_remove: del item[k]
执行后,原始的Data变量就会变为清理后的状态。
内容的提问来源于stack exchange,提问作者Marc Jen Dynver Garcia
相关产品推荐
相关产品推荐

