我觉得这很愚蠢。如何使用引用值的if语句删除字典中的键。当我这样做时:
newdict = {"a":1,"b":2,"c":3}
for (key,value) in newdict:
if value == 2:
del newdict[key]
print(newdict)
它抛出了这个错误:
line 3, in <module>
for (key,value) in newdict:
ValueError: not enough values to unpack (expected 2, got 1)
谢谢。
答案 0 :(得分:1)
如果您需要根据商品值进行删除,请使用items()
方法,否则它会提供ValueError
。但请记住,如果你这样做,它会给RuntimeError
。发生这种情况是因为newdict.items()
返回迭代器而不是list
。因此,将newdict.items()
转换为list
,它应该有效。改变上面的代码如下 -
for key,value in list(newdict.items()):
if value == 2:
del newdict[key]
输出 -
{'a': 1, 'c': 3}