这是一个Maya Python问题。
如何创建一个用于制作此
的for循环我创建了两个列表,一个用于Buffer,另一个用于MM。 使用此命令,cmds.connectAttr(MM +'。messeage',buffer +'。renderPass',f = True)
您可以将MM连接到缓冲区
以下是我目前的情况:
import maya.cmds as cmds
import maya.mel as mel
import random as rand
import math
bufferls=[]
MMls=[]
for i in range(5):
writeToColor=mel.eval('mrCreateCustomNode -asUtility "" writeToColorBuffer;')
cmds.rename(writeToColor, 'buffer'+str(i))
bufferls.append('buffer'+str(i))
for i in range(2):
MutiMatte = cmds.createNode( 'renderPass', name=('MM'+str(i)))
cmds.setRenderPassType( 'MM'+str(i),type='CSTCOL')
MMls.append(MutiMatte)
def n_split(bufferls, n=3):
num_extra = len(bufferls) % n
zipped = zip(*[iter(bufferls)] * n)
return zipped if not num_extra else zipped + [bufferls[-num_extra:], ]
for buffer in n_split(bufferls, 3):
newlists =list(buffer)
print newlists
答案 0 :(得分:0)
您可以使用枚举迭代listA
,然后使用切片从listB
获取位:
def pair_in_groups(listA, listB, n):
for i, item in enumerate(listA):
yield (item, listB[n*i: n*(i+1)])
listA = ['mm0', 'mm1', 'mm2']
listB = ['aa1', 'aa2', 'aa3','aa4','aa5']
for pair in pair_in_groups(listA, listB, 3):
print(pair)
打印
('mm0', ['aa1', 'aa2', 'aa3'])
('mm1', ['aa4', 'aa5'])
('mm2', [])