2017-08-04 18 views
-3

これはMaya Pythonの質問です。私は二つのリスト、バッファ用とMMのための1つを作成するには、この2つのリストがPythonで相互作用します

enter image description here

作るループのために作成するにはどうすればよい

enter image description here

。このコマンドで 、cmds.connectAttr(MM + 'messeage'、バッファ+」。renderPass'、F =真)

あなたはここで

enter image description here

をバッファリングするために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

あなたが列挙使っ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', []) 
関連する問題