【发布时间】:2013-02-11 13:52:33
【问题描述】:
我有一本字典:
default = {'a': ['alpha'], 'b': ['beta','gamma'], 'g': []}
我希望将空值消除为:
default = {'a': ['alpha'], 'b': ['beta','gamma']}
我写了一个函数(按照网上找到的例子)
def remove_empty_keys(d):
for k in d.keys():
try:
if len(d[k]) < 1:
del[k]
except:
pass
return(d)
我有以下问题:
1- 我没有找到为什么它总是返回以下的错误 -
remove_empty_keys(default)
{'a': ['alpha'], 'b': ['beta'], 'g': []}
2- 是否有内置函数可以在不创建原始字典副本的情况下从 Python 字典中消除/删除 Null/None/空值?
【问题讨论】:
-
您的问题似乎将
None的想法与空列表混为一谈。这让人更难理解。 -
也许更好的说法是“是否有从字典中消除虚假值的功能”
-
您的
try...except子句似乎没有任何作用,只是对自己隐藏自己的错误。如果您真的想使用 try/except,那么您应该始终指定您期望的异常(在本例中为 KeyError)。这样,他们就不会无意中隐藏不相关的错误。但在这种情况下,除非并行线程中有代码正在修改d,否则您永远不会收到关键错误,因为k必须在d中,因为它是由@ 返回的987654330@.
标签: python list dictionary