回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>首先,对不起,我的英语不是很好!
我有个问题,找不到解决办法。你知道吗</p>
<p>我有这样一个图表:</p>
<p><img src="https://i.stack.imgur.com/Tt4W0.jpg" alt="The node graph in Maya"/></p>
<p>我有一个函数,它返回如下图形:</p>
<pre><code> data = {
'Finition': {
'Metal': {
'colorCorrect1': {
'Color': {
'aiLayerShader2': {
'colorConstant1': {},
'colorConstant3': {},
'colorConstant2': {
'aiFloatToRgba1': {
'place2dTexture1': {}
}
},
'colorConstant4': {},
'colorConstant5': {
'aiFloatToRgba1': {
'place2dTexture1': {}
}
},
'colorConstant6': {}
}
}
}
}
}
}
</code></pre>
<p>我有一个主要组的列表(图片中的蓝色节点):
`你知道吗</p>
<pre><code> selection = ['Finition', 'Metal', 'Color', 'colorConstant2']
</code></pre>
<p>我需要一个函数,它可以返回特定组的节点列表(在下一个组之前):</p>
<p>返回值应如下所示:</p>
<pre><code> [
['Finition'],
['Metal', 'colorCorrect1'],
['Color', 'aiLayerShader2', 'colorConstant1', 'colorConstant3', 'colorConstant4', 'colorConstant5', 'colorConstant6', 'aiFloatToRgba1', 'place2dTexture1'],
['colorConstant2', 'aiFloatToRgba1', 'place2dTexture1']
]
</code></pre>
<p>我尝试了以下方法:</p>
<pre><code> def search_recurssive(element=None, main={}, depth=0):
for key, value in main.items():
if key != element:
if isinstance(value, dict):
search_recurssive(element=element, main=value, depth=depth+1)
else:
pprint(value)
print depth
search_recurssive(element='Metal', main=data)
</code></pre>
<p>但没有起作用。非常感谢你的帮助!你知道吗</p>