2011-06-30 144 views
-3

我試圖創建一個循環的方法,並且在這個過程中它創建了2個級別的數組。Python中的數組/字典

在PHP它看起來像這樣

for($a = 0; $a < 3; $a++) { 
    $something[$a] = [1,2,3]; 
} 

但問題是蟒蛇。我似乎無法在同一時間將密鑰「u」添加到變量和它下面的數組中。你會如何正確地做到這一點?

我當前的代碼:

for u in range(3): 
    something[u] = [1,2,3] #this line doesn't seem to work 
    somethingElse = [1,2,3] #this works properly 

請原諒我,如果這是一個愚蠢的問題。我是一名初學者,我已經嘗試過使用Google搜索,但實際上並沒有發現任何有用的東西。

+0

什麼'something'開始? – weronika

回答

2

查找所需信息的最佳方法是使用python教程。例如,要回答自己的問題,你可以看看下面的鏈接:http://docs.python.org/tutorial/datastructures.html

您可以使用列表理解:

something = [[1,2,3] for u in xrange(3)] 

或地圖:

something = map(lambda x: [1,2,3], xrange(3)) 

或插入(如果您需要插入到確切的索引中)或追加以將項目添加到列表的末尾:

something = [[1,2,3]] 
something.append([1,2,3])# something == [[1,2,3],[1,2,3]] 
something.insert(0, [2,3,1])# something == [[2,3,4],[1,2,3],[1,2,3]] 

如果你想使用映射(字典):

something = {} 
for u in xrange(3): 
    something[u] = [1,2,3] 
0

您不能使用不存在的列表內的索引。

something = [] 
for u in range(3): 
    something.append([1, 2, 3]) 
0

您還沒有填充該初始列表。

1

當你忘記了關於PHP的所有內容時,這會更容易。您需要先創建一個空列表。

something = [] 
for u in range(3): 
    something.append([1, 2, 3]) 

注意something[u]是行不通的,因爲在列表中沒有u個元素。不要將列表(或數組)與映射混淆。

0

看來你真正想要的可能是字典,而不是列表。

something = {} 
for u in range(3): 
    something[u] = [1,2,3] 

一個列表,該列表必須已經在你面前至少ü元素可以將列表[U],但有一個字典,你可以隨意增加新的項目。