簡體   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