python - 删除字典中的空值
问题描述
我的代码如下:
new_dict = {k: v for k,v in d.items() if v != None}
我需要删除''
字典中出现的空值。
我目前得到输出:
'000B4662348C35B4': ['000B4662348C35B4', '', '', '', '', '', '2938717381', '5286676508', '7818174481', '2938717381', '4110479734', '9894624226', '9827417465', '9907632031', '2941365751', '1220277655', '7455720881', '88810260', '8441033464', '3992507902', '8464607083', '1201527184', '2861935553', '4110479734', '5789253700', '2637281600', '5603666228', '9126320955', '2431085055', '8833906919', '1565530436', '8340343124', '2029932640', '6334249086'],
这只是输出的一小部分,但你应该明白了。我只想要''
删除。
到目前为止,我已经尝试过:
new_dict = {k: v for k,v in d.items() if v != ''}
new_dict = {k: v for k,v in d.items() if v}
所有这些仍然打印相同的输出。
解决方案
您可以在字典值上使用列表推导,您将在其中过滤掉空元素:
d = {'000B4662348C35B4': ['000B4662348C35B4', '', '', '', '', '', '2938717381', '5286676508', '7818174481', '2938717381', '4110479734', '9894624226', '9827417465', '9907632031', '2941365751', '1220277655', '7455720881', '88810260', '8441033464', '3992507902', '8464607083', '1201527184', '2861935553', '4110479734', '5789253700', '2637281600', '5603666228', '9126320955', '2431085055', '8833906919', '1565530436', '8340343124', '2029932640', '6334249086']}
d = {k: [i for i in v if i] for k, v in d.items()}
print(d)
印刷:
{'000B4662348C35B4': ['000B4662348C35B4', '2938717381', '5286676508', '7818174481', '2938717381', '4110479734', '9894624226', '9827417465', '9907632031', '2941365751', '1220277655', '7455720881', '88810260', '8441033464', '3992507902', '8464607083', '1201527184', '2861935553', '4110479734', '5789253700', '2637281600', '5603666228', '9126320955', '2431085055', '8833906919', '1565530436', '8340343124', '2029932640', '6334249086']}
笔记:
{k: v for k,v in d.items() if v != ''}
只会过滤掉不等于''
的字典值,但您的字典值是列表。
编辑:没有列表和字典理解:
out = {}
for k, v in d.items():
tmp = []
for i in v:
if i != "":
tmp.append(i)
out[k] = tmp
print(out)
推荐阅读
- java - 仅使用 logback 缩短前 3 个包名
- python - django 的`save()` 是创建还是更新?
- cmake - 自定义命令不会在 cmake 中使用 --target 选项执行
- php - 路线中的动作
- c - 如何在 mac 上使用 Oracle 预编译器
- c# - 是否可以在 Azure 搜索索引中填充集合?
- javascript - 如何等到加载镀铬标签的纺车停止?
- php - 如何在 Laravel Eloquent 中将表格加入表格
- java - Htmlunit 用 javascript 填写表单
- python - “加载依赖项时出错”:创建 dash 应用程序以上传 csv 并使用任意列组合呈现图形