我有两个清单。第一个看起来像这样:
passOrder = [
'direct_diffuse',
'direct_specular',
'direct_specular_2',
'indirect_diffuse',
'indirect_specular',
'indirect_specular_2',
'refraction',
'reflection',
'emission',
'sss'
]
另一个是对象列表 - 在本例中为 Nuke 节点:
nodes = nuke.selectedNodes()
我正在尝试将每个节点的名称参数与 passOrder 列表进行比较,并按照 passOrder 中给出的顺序排列它们。我试图显式设置orderedNodes 索引,但我想当列表在开始时为空时这是不可能的。
orderedNodes = []
for n in nodes:
for index, p in enumerate(passOrder):
if n['name'].value() == p:
orderedNodes.insert(index, n)
我也尝试压缩这两个列表,并对它们进行排序 - 这里没有运气。n['name'].value()
基本上我不知道在排序时如何迭代组件。