【发布时间】:2021-01-29 09:05:56
【问题描述】:
我有一个可能有非唯一键的嵌套字典
我需要通过字符串格式的键在此字典上动态添加/获取键值对
正在以字符串格式从键盘输入中读取作为键名的字符串
给定那个字符串,我必须找到一个与之匹配的键并使用相应的键值对做一些事情
不同嵌套级别的键可能不唯一
但它们在单个嵌套级别上是唯一的
例如,我有这个字典:
MyDict = {'a': 1, 'b': 2}
现在,我得到了一些字符串格式的输入,告诉我用键“c”再添加一个嵌套级别,然后用键值对“a:3”填充它。我就是这样做的:
last_edited_element = {'a': 3}
MyDict['c'] = last_edited_element
#MyDict is now {'a': 1, 'b': 2, 'c': {'a': 3}}
然后,我得到一个输入,告诉我使用具有“a”键的键值对执行某些操作
我有一条规则,首先我必须在最后编辑的关卡中查找“a”键,然后如果没有找到 - 上一层。我将上次编辑的元素存储在变量 last_edited_element 中。
最后编辑的元素是 {'a': 3},所以我这样做了:
if 'a' in last_edited_element:
#do something with {'a': 3}
else:
#go one level up and look for 'a' key there
所以问题是,我如何上一层楼?我将 {a: '3'} 存储在变量 last_edited_element 中,如果有任何包含 last_edited_element 的上层字典,我需要访问上层字典,例如 last_edited_element.get_parent_dictionary() 我该怎么做?
【问题讨论】:
-
您可以将每个嵌套级别与其在父字典中的键相关联
-
是否要求您进行自下而上的搜索?最好是自上而下然后选择你想要的键
-
输入的内容迫使我自下而上搜索,因为我必须从上次更改的级别开始搜索
标签: python-3.x dictionary