python 嵌套字典的定义

文章原创,最近更新: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'}}}}

你可能感兴趣的:(python 嵌套字典的定义)