删除字典python中的键

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

另外,我请求您帮助我了解如何回复回复。每次我没有正确回答。换行或编写代码对我不起作用。谢谢您。


这是因为字典被解包并重新打包到关键字参数**dictArgum中,所以您在函数中看到的字典是一个不同的对象:

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

return转让:

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