我正在嘗試列出大約5000個列表,并且列表總是混亂不堪。現在,我只是這樣做:array = [[]]*5000for line in f2: a = line.split() grid = int(a[0]) array[grid].append(a[1])print Counter(array[0]).most_common(10)問題是當我進行計數器操作時,好像整個列表數組實際上只是一個列表一樣。我做錯了什么嗎?謝謝
2 回答

墨色風雨
TA貢獻1853條經驗 獲得超6個贊
使用[[]]*5000,您將在外部列表中創建5000個對同一列表的引用。因此,如果您修改任何列表,它將全部修改。
您可以這樣獲得不同的列表:
a = [[] for _ in xrange(5000)]

茅侃侃
TA貢獻1842條經驗 獲得超22個贊
該答案是對約1000個其他Python問題的重復,在這些問題中,列表的初始化方式是這樣的。我認為我們需要“常見問題解答”,然后我們可以說“請參閱FAA#27”或其他內容。其他候選:“第N行的語法錯誤表示N-1行的括號不匹配”,“比較1 <'0'不會得到您認為會的結果,因為它們是不同的類型”。嗯,我想我會發布一個新的Community Wiki問題...
添加回答
舉報
0/150
提交
取消