删除无值字典项 - Python
如果我有一个字典,想要删除那些值是空列表[]
的条目,我该怎么做呢?
我试过:
for x in dict2.keys():
if dict2[x] == []:
dict2.keys().remove(x)
但是那样不行。
8 个回答
3
在编程中,有时候我们会遇到一些问题,特别是在使用某些工具或库的时候。比如说,有人可能在使用一个叫做“库”的东西时,发现它的某些功能不太好用,或者出现了错误。这种情况下,大家通常会去一个叫做StackOverflow的网站上寻求帮助。
在这个网站上,很多程序员会分享他们遇到的问题和解决方案。比如,有人可能会问:“我在使用这个库的时候,为什么会出现这个错误?”然后,其他人就会根据自己的经验来回答他们,提供一些建议或者解决办法。
总之,StackOverflow是一个很有用的地方,程序员们可以在这里互相帮助,解决各种编程上的难题。
for x in dict2.keys():
if dict2[x] == []:
del dict2[x]
14
新版本的Python支持字典推导式:
dic = {i:j for i,j in dic.items() if j != []}
这种写法比用过滤器或for循环要更容易理解。
12
.keys()
是用来获取字典中所有键的一个方法,但对这个键的列表所做的修改不一定会反映到字典里。如果你想要删除某个键,得用 del dictionary[key]
或者 dictionary.pop(key)
这样的方式。
由于某些版本的 Python 有这样的特性,你需要先复制一份键的列表,这样才能确保你的代码正常工作。所以,如果你这样写代码,就能正常运行:
for x in list(dict2.keys()):
if dict2[x] == []:
del dict2[x]