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)

问题是当我制作计数器时,它就好像整个列表数组实际上只是一个列表。有什么明显的我做错了吗?谢谢

4

1 回答 1

7

使用[[]]*5000,您正在为外部列表中的同一列表创建5000个引用。因此,如果您修改任何列表,它将修改所有列表。

您可以获得不同的列表,如下所示:

a = [[] for _ in xrange(5000)]
于 2013-07-01T19:11:07.547 回答