繁体   English   中英

如何动态创建和引用作为字典中值的字典?

[英]How do I create and reference dictionaries that are the values within a dictionary dynamically?

我想结束这样的事情:

directory = {  'root' : {'parent': 'none',  'children': ['folder1','folder2']},
            'folder1': {'parent': 'root',  'children': ['folder3']},
            'folder2': {'parent': 'root',  'children': []},
            'folder3': {'parent': 'folder1', 'children': []} }

但没有在我的代码中明确定义它。 如果我尝试从这样的代码中构建它:

mydirectory = {}

my_key = 'root'
my_value = {}
mydirectory[my_key] = my_value

inner_key = 'parent'
inner_value = 'none'
mydirectory[my_key][my_value][inner_key] = inner_value

print(mydirectory)

我在倒数第二行收到TypeError: unhashable type: 'dict'并且我不知道如何动态构建(和引用)它。 (实际上,像“folder1”这样的所有值都将从列表中获取并像 outerlist[2] 一样被引用,即 my_key = outerlist[2]。)

此外,如何为第一个键值对中的键“children”的值创建引用['folder1', 'folder2'] 之类的列表?

mydirectory[my_key] = my_value行之后,您的字典看起来像{'root': {}}

mydirectory[my_key][my_value]...将抛出TypeError: unhashable type: 'dict'因为mydirectory[my_key]是一个字典,而my_value也是一个字典——字典和其他可变类型如列表不能是键字典——相反,你只需要修改mydirectory[my_key]

mydirectory[my_key][inner_key] = inner_value

结果:

{'root': {'parent': 'none'}}

在最后一行之前的一行中,

mydirectory[my_key][my_value][inner_key] = inner_value

您正在尝试使用my_value作为字典中的键,这是不允许的,因为可变类型不能是字典中的键。

因此,只需删除my_value作为该行中的键即可。

mydirectory[my_key][inner_key] = inner_value

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM