2012-06-12 75 views
0

我的標題不是最好的道歉。這裏就是我試圖完成: 我有一個列表:根據Python中的列表中的對象名稱編號

list1 = [a0_something, a2_something, a1_something, a4_something, a3_something] 

我還有一個列表誰條目元組包括一個名稱,如:

list2 = [(x1,y1,z1,'bob'),(x2,y2,z2,'alex')...] 

在第二列表中的第0名對應於a0_something,並且第二個列表的第一個條目中的名稱對應於a1_something。基本上第二個列表是在寫入順序中,但第一個列表不是。

我一起工作的程序具有的setName功能,我想做到這一點

a0_something.setName(list2[0][4]) 

等與循環。

所以,我可以真的只是說

for i in range(len(list1)): 
    a(i)_something.setName(list2[i][4]) 

反正我有可以參考這個數字在一#_something,這樣我可以用一個循環迭代?

+0

是什麼的東西部分的含義名字?爲什麼不能有一個名字或什麼的字典... – ChipJust

+0

我要加入...爲什麼列表?如果你正在製作它,那麼爲什麼不根據需要創建一個列表,或者製作一本字典。你如何/從哪裏獲取內容(類對象)? – beoliver

回答

3

編號

變量名在運行時沒有意義。 (除非你在做反省,我保證你是什麼你不應該做

,使得使用適當的列表:

lst = [a0_val, a1_val, a2_val, a3_val, a4_val] 

,然後解決它通過lst[0]

或者,如果這些名字有含義,使用字典,其中:

dct = { 
    'a0' : a0_val, 
    'a1' : a1_val, 
    # ... 
} 

dct['a0']使用它。

0

枚舉函數讓您獲取當前項目的值和索引。所以,你的榜樣,你可以這樣做:

for i, asomething in enumerate(list1): 
    asomething.setName(list2[i][3]) 

因爲你的列表2的長度爲4,最後一個元素是索引3(你也可以使用-1)

相關問題