2017-08-04 121 views
-3

这是一个玛雅Python问题。两个列表在Python中交互

enter image description here

如何创建一个for循环,使这个

enter image description here

创建两个列表,一个缓冲区,一个用于MM。 使用此命令,cmds.connectAttr(MM + 'messeage',缓冲区+”。renderPass',F = TRUE)

您可以连接MM缓冲

enter image description here

这是我目前的有:

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

您可以通过使用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', [])