擅长:python、mysql、java
<p>这段代码修改现有的child:parent字典,将深度标志添加到每个列表的末尾。它将正常工作(在python2和python3中),无论键的处理顺序如何。在Python3.6之前的版本中,字典不一定保留键的插入顺序,并且键的顺序可以从程序的一次运行更改到下一次运行。所以我对条目做了一些修改,以确保它的行为符合预期。你知道吗</p>
<pre><code>src = {
'D': ['C'],
'B': ['A'],
'A': ['Blue'],
'C': ['A'],
}
def get_depth(d, k):
v = d[k]
if len(v) == 2:
return v[1]
else:
parent = v[0]
depth = 0 if parent == 'Blue' else get_depth(d, parent) + 1
v.append(depth)
return depth
for k in src:
get_depth(src, k)
print(src)
</code></pre>
<p><strong>Python 3.6输出</p>
<pre><code>{'D': ['C', 2], 'B': ['A', 1], 'A': ['Blue', 0], 'C': ['A', 1]}
</code></pre>