2017-08-04 2 views
-3

Dies ist eine Maya Python Frage.Zwei Listen interagieren in Python

enter image description here

Wie erstelle ich eine for-Schleife, die diese

enter image description here

mache ich erstellen zwei Listen, eine für Buffer und eine für MM. mit diesem Befehl cmds.connectAttr (MM + 'messeage', Puffer +‘. RenderPass', f = True)

Sie MM anschließen können

enter image description here

hier zu puffern ist, was ich Strom haben:

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 

Antwort

0

Sie über listA aufzählen mit laufen kann, und dann Scheiben verwenden, die Bits von listB zu erhalten:

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) 

druckt

('mm0', ['aa1', 'aa2', 'aa3']) 
('mm1', ['aa4', 'aa5']) 
('mm2', [])