2012-02-20 69 views
-1

我必須使用FOR循環這樣我怎麼能說出一個列表裏面「for」循環

x=0 
for i in range(22): 
    SOME OPERATION 

而不是操作的值存儲在像列表[0,0,0,0 ,0] 取決於操作結果+1將完成列表中的任何5個值。

問題是我需要每個迭代的列表。能否請你幫我命名/初始化列表中包含列表1,列表2和名稱等,直到名單22.讓我可以繼續+1在任何五個值

AK

+1

請詳細說明(編輯你的文章)你真的想做什麼。這很難理解。如果您需要定義任意數量的東西,請使用字典或列表。例如,'myLists [i] = [0,0,0,0,0]'。否則請詳細說明,因爲幾乎可以肯定有更好的方法來做到這一點,甚至可能是單線。 – ninjagecko 2012-02-20 03:44:14

+0

這些列表如何自相似?你有沒有想要提及的示例操作? – 2012-02-20 04:05:38

回答

2

列出如果您需要一組命名列表,然後它聽起來像你想要一本字典:

myLists = dict() 
for x in range(22): 
    myLists[ 'list%d' % x ] = [0,0,0,0,0] 

如果你寧願用列表的列表做到這一點:

myLists = list() 
for x in range(22): 
    myLists.append([0,0,0,0,0]) 
+1

或'myLists ['list {}'.format(x)] = [0,0,0,0,0]' – 2012-02-20 07:16:45

1

可以定義lists變量在頂部:

lists = [list1, list2, ... ,list22] 

x=0 
for i in range(22): 
    SOME OPERATION against lists[i] 
3
for i in range(22): 
    myLists[i] = [0,0,0,0,0] 
+0

嗨,忍者,我得到以下錯誤與您的方法:Traceback(最近呼叫最後): 文件「」,第2行,在 pos [i] = [0,0,0,0,0] IndexError:列表分配索引超出範圍 – Bade 2012-02-20 17:01:19

+0

@AtulKakrana:此方法假定您已初始化您的數組到某物,例如'myLists = [範圍(22)]中沒有_,儘管我仍然不知道你在做什麼,所以不能給出具體的建議。 – ninjagecko 2012-02-20 19:27:01

0

強制性單行:

(凡operation()[0,0,0,0]返回)

字典

mydict = {num : operation() for num in range(22)} 

{0: [0, 0, 0, 0], 
1: [0, 0, 0, 0], 
2: [0, 0, 0, 0], 
3: [0, 0, 0, 0], 
...,  
21: [0, 0, 0, 0]} 

列表

mylist = [operation() for num in range(22)] 

[[0, 0, 0, 0], 
[0, 0, 0, 0], 
[0, 0, 0, 0], 
..., 
[0, 0, 0, 0]]