2013-04-10 113 views
0

我想通過2個列表循環,然後加入它們。但是我在構建循環代碼時遇到了問題。列表的循環列表

這是Softimage(動畫3D程序)代碼,但我希望它是有道理的。

這是我有:

import os 
import glob 
app = Application 
storeSelect=[] 
mypath = app.ActiveProject.ActiveScene.filename.value 
folder=[] 
storeAll=[] 
listObj=[] 
path=[] 
storeSelecte=[] 
folderAll=[] 
#Seleccion 
app.SelectObj("*.geometry_cache_grp*") 
mySelection = app.Selection 


# GETS PATHS FOr each Character Folder 

userPath=Application.XSIInputBox ("Direccion de Cache", "Cache")+ "/" 
os.chdir(userPath) 


#/loops 

for lis in mySelection: 
    storeSelect.append(lis) 
    members = app.SelectMembers(lis) 
    app.SelectObj("*.geometry_cache_grp*") 
    mySelection = app.Selection 

    for files in sorted(glob.glob("*.scn_c*")): 
     folder=files 
     for lise in members: 
      print lise,folder 

但我得到的結果的兩倍,這樣的:

# DI_CACHE.lengua Anim_2p.scn_c_DI_rig 
# DI_CACHE.vidrios Anim_2p.scn_c_DI_rig 
# DI_CACHE.dientes_abajo Anim_2p.scn_c_DI_rig 
# DI_CACHE.lengua Anim_2p.scn_c_TOTO_GALLO_rig 
# DI_CACHE.vidrios Anim_2p.scn_c_TOTO_GALLO_rig 
# DI_CACHE.dientes_abajo Anim_2p.scn_c_TOTO_GALLO_rig 
# TOTO_GALLO_cache.lengua Anim_2p.scn_c_DI_rig 
# TOTO_GALLO_cache.dientes_01 Anim_2p.scn_c_DI_rig 
# TOTO_GALLO_cache.plumas_guantes Anim_2p.scn_c_DI_rig 
# TOTO_GALLO_cache.lengua Anim_2p.scn_c_TOTO_GALLO_rig 
# TOTO_GALLO_cache.dientes_01 Anim_2p.scn_c_TOTO_GALLO_rig 
# TOTO_GALLO_cache.plumas_guantes Anim_2p.scn_c_TOTO_GALLO_rig 

有誰知道怎麼糾正我的循環,所以它只能通過它去僅一次)?結果應該是這樣的:

# DI_CACHE.lengua Anim_2p.scn_c_DI_rig 
# DI_CACHE.vidrios Anim_2p.scn_c_DI_rig 
# DI_CACHE.dientes_abajo Anim_2p.scn_c_DI_rig 
# TOTO_GALLO_cache.lengua Anim_2p.scn_c_TOTO_GALLO_rig 
# TOTO_GALLO_cache.dientes_01 Anim_2p.scn_c_TOTO_GALLO_rig 
# TOTO_GALLO_cache.plumas_guantes Anim_2p.scn_c_TOTO_GALLO_rig 
+0

你沒有得到的東西,TOTO在所有? – Serdalis 2013-04-10 01:01:13

+2

你最好展示這兩個原始列表。 – Sheng 2013-04-10 01:03:07

+0

它看起來像你正在重複使用相同的變量名稱的兩個循環,是故意的?你可以嘗試修復,看看結果是不同的。 – 2013-04-10 01:03:09

回答

0

我不知道,如果它可以幫助你,但你可以這樣做:

members=[["DI_CACHE.lengua","DI_CACHE.vidrios","DI_CACHE.dientes_abajo"],["TOTO_GALLO_cache.lengua","TOTO_GALLO_cache.dientes_01","TOTO_GALLO_cache.plumas_guantes"]]' 

folders=[["Anim_2p.scn_c_DI_rig"],["Anim_2p.scn_c_TOTO_GALLO_rig"]] 

然後

for i in xrange(len(a)): 
    for n,m in itertools.product(a[i],b[i]): 
     print n,m 

結果:

DI_CACHE.lengua Anim_2p.scn_c_DI_rig 
DI_CACHE.vidrios Anim_2p.scn_c_DI_rig 
DI_CACHE.dientes_abajo Anim_2p.scn_c_DI_rig 
TOTO_GALLO_cache.lengua Anim_2p.scn_c_TOTO_GALLO_rig 
TOTO_GALLO_cache.dientes_01 Anim_2p.scn_c_TOTO_GALLO_rig 
TOTO_GALLO_cache.plumas_guantes Anim_2p.scn_c_TOTO_GALLO_rig 
+0

@ user2250175:如何選擇這個答案,但它被張貼爲問題[這裏](http://stackoverflow.com/questions/15928701/looping -two-lists-of-lists)? – Schorsch 2013-05-08 13:53:37

+0

WTF!完全奇怪! – Moj 2013-05-08 14:21:56