Python - 把扁平化字典轉換成巢狀字典


Python 字典包含鍵和值。如果我們有兩個或更多個要合併為巢狀字典的字典,那麼我們可以採用以下方法。這裡,字典給出帶有新鍵,這些新鍵將成為巢狀字典中的鍵。

分配鍵

在此方法中,我們將建立一個新的空字典。然後,將給定的字典分別分配給每個新鍵。結果字典將是帶有分配的鍵的巢狀字典。

示例

dictA = {'Sun': 1, 'Mon': 2}
dictB = {'Tue': 3, 'Sun': 5}

# Given Dictionaries
print("DictA : ",dictA)
print("DictB: ",dictB)

# Using key access and dict()
res = dict()
res['Netsed_dict_1'] = dictA
res['Netsed_dict_2'] = dictB

# printing result
print("Netsed Dictionary: \n" ,res)

執行上述程式碼會給出以下結果 −

輸出

DictA : {'Sun': 1, 'Mon': 2}
DictB: {'Tue': 3, 'Sun': 5}
Netsed Dictionary:
{'Netsed_dict_1': {'Sun': 1, 'Mon': 2}, 'Netsed_dict_2': {'Tue': 3, 'Sun': 5}}

使用 zip

zip 函式可以將鍵和字典轉換為元組。然後,我們應用 dict 函式以獲得最終結果,這是一個包含新鍵和輸入字典的字典。

示例

dictA = {'Sun': 1, 'Mon': 2}
dictB = {'Tue': 3, 'Sun': 5}

# Given Dictionaries
print("DictA : ",dictA)
print("DictB: ",dictB)

# Using zip
dict_keys = ['Netsed_dict_1','Netsed_dict_2']
all_dicts = [dictA,dictB]
res = dict(zip(dict_keys,all_dicts))
# printing result
print("Netsed Dictionary: \n" ,res)

執行上述程式碼會給出以下結果 −

輸出

DictA : {'Sun': 1, 'Mon': 2}
DictB: {'Tue': 3, 'Sun': 5}
Netsed Dictionary:
{'Netsed_dict_1': {'Sun': 1, 'Mon': 2}, 'Netsed_dict_2': {'Tue': 3, 'Sun': 5}}

更新於: 2020-12-28

619 次檢視

開啟你的職業生涯

透過完成課程獲得認證

開始
廣告
© . All rights reserved.