[英]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.