remove Key in dictionary python
如果是副本,请原谅。我使用了链接1和链接2中提供的方法
我使用的是Python版本2.7.3。我正在将字典传递给函数,如果条件为真,我想删除键。
当我查字典前后的长度是一样的。
我的代码是:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | def checkDomain(**dictArgum): for key in dictArgum.keys(): inn=0 out=0 hel=0 pred=dictArgum[key] #iterate over the value i.e pred.. increase inn, out and hel values if inn!=3 or out!=3 or hel!=6: dictArgum.pop(key, None)# this tried del dictArgum[key] ###This also doesn't remove the keys print"The old length is", len(predictDict) #it prints 86 checkDomain(**predictDict) #pass my dictionary print"Now the length is", len(predictDict) #this also prints 86 |
另外,我请求您帮助我了解如何回复回复。每次我没有正确回答。换行或编写代码对我不起作用。谢谢您。
这是因为字典被解包并重新打包到关键字参数
1 2 3 4 5 6 7 8 9 | >>> def demo(**kwargs): print id(kwargs) >>> d = {"foo":"bar"} >>> id(d) 50940928 >>> demo(**d) 50939920 # different id, different object |
相反,直接传递字典:
1 2 3 4 5 6 7 | def checkDomain(dictArgum): # no asterisks here ... print"The old length is", len(predictDict) checkDomain(predictDict) # or here |
或
1 2 3 4 5 6 7 8 9 | def checkDomain(**dictArgum): ... return dictArgum # return modified dict print"The old length is", len(predictDict) predictDict = checkDomain(**predictDict) # assign to old name |