我有一個包含元組和整數的串列,
例如
mylist = [ (('ART', 'bar'), 2), (('ART', 'get'), 1), (('b', 'bet'), 1), (('b', 'chest'), 1), (('b', 'kart'), 2), (('b', 'zee'), 1)]
我想轉換為這個嵌套字典
my_dict = {
"ART": {"bar": 2, "get": 1},
"b": {"bet": 1, "chest": 1, "kart": 2,"zee": 1}
}
我一直在嘗試使用 for 回圈來做到這一點,但我是一個初學者,我對嵌套字典沒有任何經驗,所以我真的不知道從哪里開始。我已經查看了與字典相關的其他問題,例如this和this但建議的方法對我不起作用(我假設是因為我處理的是元組而不僅僅是串列串列。)
uj5u.com熱心網友回復:
您可以遍歷輸入并用于setdefault填充字典:
my_dict = {}
for (key, prop), value in mylist:
my_dict.setdefault(key, {})[prop] = value
uj5u.com熱心網友回復:
嘗試這個:
mylist = [ (('ART', 'bar'), 2), (('ART', 'get'), 1), (('b', 'bet'), 1),
(('b', 'chest'), 1), (('b', 'kart'), 2), (('b', 'zee'), 1)]
mydict = dict()
for i in mylist:
if i[0][0] not in mydict.keys():
mydict[i[0][0]] = {i[0][1]: i[1]}
else:
mydict[i[0][0]][i[0][1]] = i[1]
print(mydict)
uj5u.com熱心網友回復:
您可以使用collections.defaultdict:
from collections import defaultdict
my_dict = defaultdict(dict)
for (k1,k2),v in mylist:
my_dict[k1][k2] = v
my_dict = dict(my_dict)
輸出:
{'ART': {'bar': 2, 'get': 1}, 'b': {'bet': 1, 'chest': 1, 'kart': 2, 'zee': 1}}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/373899.html
