[英]create nested dictionary from list of lists
我想從列表列表中創建一個嵌套字典。 以下是名單
ls3 = [['YOU', 'HE', 'EST8'],
['YOU', 'HE', 'OLM6'],
['YOU', 'SLO', 'WLR8'],
['ARE', 'KLP', 'EST6'],
['ARE', 'POL', 'WLR4'],
['DOING', 'TIS', 'OIL8'],
['GREAT', 'POL', 'EOL6'],
['WORK', 'KOE', 'RIW8'],
['WORK', 'KOE', 'PNG4'],
['WORK', 'ROE', 'ERC8'],
['WORK', 'ROE', 'WQD6'],
['KEEP', 'PAR', 'KOM8'],
['KEEP', 'PAR', 'RTW6'],
['KEEP', 'PIL', 'XCE4'],
['KEEP', 'PIL', 'ACE8'],
['ROCKING', 'OUL', 'AZS6'],
['ROCKING', 'OUL', 'RVX8']]
下面是我的代碼,到目前為止我能夠創建這個:
di = {}
di2 = {}
for i,j,k in ls3:
di.setdefault(i, []).extend([j,k])
for i,j in di.items():
di2.update({i:{j[0]:j[1:]}})
我的輸出:
{'YOU': {'HE': ['EST8', 'HE', 'OLM6', 'SLO', 'WLR8']},
'ARE': {'KLP': ['EST6', 'POL', 'WLR4']},
'DOING': {'TIS': ['OIL8']},
'GREAT': {'POL': ['EOL6']},
'WORK': {'KOE': ['RIW8', 'KOE', 'PNG4', 'ROE', 'ERC8', 'ROE', 'WQD6']},
'KEEP': {'PAR': ['KOM8', 'PAR', 'RTW6', 'PIL', 'XCE4', 'PIL', 'ACE8']},
'ROCKING': {'OUL': ['AZS6', 'OUL', 'RVX8']}}
預期輸出:
{{'YOU':{'HE':{'EST':8,'OLM':6},'SLO':{'WLR':8}}},
{'ARE':{'KLP':{'EST':6},'POL':{'WLR':4}}}, and so on}
雙 setdefault 用於 2 個嵌套的字典。
最后一部分用於分割數字。 如果超過一位數,則應使用正則表達式。
di = {}
for i,j,k in ls3:
di.setdefault(i, {}).setdefault(j, {})[k[:-1]] = int(k[-1])
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.