python - 如何在 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]
但似乎不起作用。
解决方案
推荐阅读
- javascript - 谷歌标签管理器和 $ (JQuery) 未定义
- ios - 使用 UIPageViewController 的一些错误
- c++ - 使用向量容器挂起,同时使用数组快速计算 2D 数组
- c# - 如何使用通用类型运行 LINQ 查询
- html - 这个 Sass 代码有什么区别(一个给出无效的 css 错误,另一个没有)?
- angularjs - 在离子中显示旋转按钮(向上向下)
- apache-poi - 错误:无法初始化主类 newpackage.MyClass 原因:java.lang.NoClassDefFoundError: org/apache/poi/ss/usermodel/Row
- visual-studio-code - Visual Studio Code - 更改禁用侧边栏项目的颜色
- c++ - 使用有问题的分隔符“\”解析字符串
- java - 服务类应该是类图的一部分吗?