pythonネスト辞書の定義

1971 ワード

本文のオリジナル、最近の更新:2018-09-03は機械学習の中で辞書のネストで決定木の情報を格納し、ツリー図を描くのに大きな役割を果たし、ネスト辞書の生成は再帰的な過程である.
ネストされた辞書を構築する過程で、keyによって対応するvalueを得ることができ、対応するvalueは辞書から構成され、keyをインデックスレベルとして再利用してvalueを得ることができる.ケース1
x=[0,1,2,3,4]
y=[3,5,6,2,3]
#           
#result        
result={}
for i in range(len(x)):
    #result             
    result[str(i)]={}  #      
for i in range(len(x)):
    for j in range(5):
        #         
        result[str(i)][str(j)]=abs(x[i]-y[j])  #       
print(result)
#           
print(result['0']['1'])
print(result['0']['3'])

実行結果:
{'0': {'0': 3, '1': 5, '2': 6, '3': 2, '4': 3}, '1': {'0': 2, '1': 4, '2': 5, '3': 1, '4': 2}, '2': {'0': 1, '1': 3, '2': 4, '3': 0, '4': 1}, '3': {'0': 0, '1': 2, '2': 3, '3': 1, '4': 0}, '4': {'0': 1, '1': 1, '2': 2, '3': 2, '4': 1}}

5
2

ケース2
s={'a':{0:'no',1:{'flippers':{0: 'no', 1: 'maybe'}}},'b':{}}  #     

s["a"][0]
Out[234]: 'no'

s["a"][1]
Out[235]: {'flippers': {0: 'no', 1: 'maybe'}}

s["a"][1]['flippers'][0]
Out[236]: 'no'

s["a"][1]['flippers'][1]
Out[237]: 'maybe'

----------
#       

s={'no sur':{}}

s['no sur'][0]="no"

s
Out[240]: {'no sur': {0: 'no'}}

ss={'fli':{}}

ss['fli'][0]='no'

ss['fli'][1]='yes'

ss
Out[244]: {'fli': {0: 'no', 1: 'yes'}}

s['no sur'][1]=ss

s
Out[247]: {'no sur': {0: 'no', 1: {'fli': {0: 'no', 1: 'yes'}}}}