当前位置: 首页 > 知识库问答 >
问题:

dictionary python中的删除键

呼延运恒
2023-03-14
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个答案

丁灿
2023-03-14

发生这种情况是因为字典被解压缩并重新打包到关键字参数**dictargum中,因此您在函数中看到的字典是一个不同的对象

>>> def demo(**kwargs):
    print id(kwargs)


>>> d = {"foo": "bar"}
>>> id(d)
50940928
>>> demo(**d)
50939920 # different id, different object

而是直接传递字典:

def checkDomain(dictArgum): # no asterisks here

    ...

print "The old length is ", len(predictDict)

checkDomain(predictDict) # or here

返回并分配:

def checkDomain(**dictArgum):

    ...

    return dictArgum # return modified dict

print "The old length is ", len(predictDict)

predictDict = checkDomain(**predictDict) # assign to old name
 类似资料:
  • 我试图通过联接表的一个外键级联删除联接表中的行,它有另一个与之相关的表,我也想删除与此ID相关的所有行。看起来像下图。当我使用会话时。使用hibernate删除(reqCandObject)它工作正常,并通过从候选jobReq表中删除一个条目以及相关注释进行级联。但是,我想删除所有具有特定候选ID的候选项(并删除注释)。我尝试了下面的函数,但与nice hibernate不同。删除(对象)函数,此

  • 问题内容: 我正在使用Oracle数据库,但对Drop和Purge命令有些困惑。实际上,对于我来说,两者都做同样的事情。从数据库中删除带有模式的表。两者的主要区别是什么? 删除表表名; 删除表表名清除; 问题答案: 通常,如果表被删除,则将其移入回收站(从Oracle 10g开始)。但是,如果还指定了purge修饰符,则无法从数据库中删除(完全)删除该表。

  • 问题内容: 我有一个Dockerfile扩展了声明一个的图像。有没有一种方法可以覆盖指令,从而“删除”指令? 问题答案: 没有。 这样做的唯一方法是,如果您克隆用作基础图像(in中的一个)的图像,然后手动删除该指令。然后构建它并用作您的基础。

  • 我想删除phpmyadmin中的第一行,但我有问题。我没有得到任何SQL错误。 PHP代码 HTML 另一个按钮 我没有找到任何解决办法。我不确定出了什么问题。你能帮帮我吗?

  • 要删除表的列,请在ALTER table语句中使用drop column子句,如下所示: 错误:“rs”行或其附近出现语法错误1:ALTER TABLE res_partner rs

  • 我是JSP的新手,我正在尝试创建一个web界面,用户可以在该界面中输入他们想要删除的信息,并且该信息将在数据库表中删除。 在这里,他们应该输入和,然后应该删除具有两个指定ID的任何数据。但是,它不是从表中删除的。我有个例外 数组索引越界 下面是我的代码: