删除无值字典项 - Python

8 投票
8 回答
16517 浏览
提问于 2025-04-16 19:19

如果我有一个字典,想要删除那些值是空列表[]的条目,我该怎么做呢?

我试过:

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]

撰写回答