2013-07-01 47 views
1

我想列出大約5000個列表的列表,它不斷搞亂。
現在,我只是這樣做:麻煩製作一個指定大小的列表

array = [[]]*5000 
for line in f2: 
    a = line.split() 
    grid = int(a[0]) 
    array[grid].append(a[1]) 

print Counter(array[0]).most_common(10) 

的問題是,當我把它做它,就好像列表全陣列實際上只是一個列表中的計數器。有什麼顯而易見的,我做錯了嗎? 感謝

回答

7

使用[[]]*5000,要創建參考同一列表中的外部列表。所以,如果你修改任何列表,它將修改所有列表。

你可以得到不同的列表如下:

a = [[] for _ in xrange(5000)] 
+0

這個答案是重複到列表清單中被初始化這條路大約1000其他Python的問題。我認爲我們需要「經常回答的答案」,然後我們可以說「看聯邦航空局#27」或其他什麼。其他候選者:「第N行的語法錯誤意味着第N-1行的括號不匹配」,「比較1 <'0'不會給出您認爲它會的結果,因爲它們是不同的類型。嗯,我想我會發佈一個新的社區Wiki問題... – PaulMcG