首页 > 解决方案 > 如何在 Python 中从 dict 中删除键

问题描述

运行此代码时

def mergeYaml(priorityYaml, defaultYaml):
  finalYaml = {}
  if isinstance(defaultYaml, dict):
    for dk, dv in defaultYaml.items():
      if dk in priorityYaml:
        finalYaml[dk] = mergeYaml(priorityYaml[dk], dv)
      else:
        finalYaml[dk] = dv
    for pk, pv in priorityYaml.items():
      if pk in finalYaml:
        if pv == None:
          finalYaml[pk].pop(pk, None) # Error is on this line
        else:
          finalYaml[pk] = mergeYaml(finalYaml[pk], pv)
      else:
        finalYaml[pk] = pv

  else:
    finalYaml = defaultYaml
  return finalYaml

Python 抛出以下错误:

pop() takes from 1 to 2 positional arguments but 3 were given

如果我将 pop 更改为使用命名参数

finalYaml[pk].pop(key=pk, default=None)

我得到 tis 错误:

pop() got an unexpected keyword argument 'key'

不知道为什么 Python 认为我通过了 3 个论点,但我怀疑第一个是 self. 我只想从字典中删除密钥,del finalYaml[pk]但似乎不起作用。

标签: pythondictionarydel

解决方案


推荐阅读