无法制作指定大小的列表列表

我正在尝试列出大约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)

问题是当我进行计数器操作时,好像整个列表数组实际上只是一个列表一样。我做错了什么吗?谢谢


料青山看我应如是
浏览 356回答 2
2回答

墨色风雨

使用[[]]*5000,您将在外部列表中创建5000个对同一列表的引用。因此,如果您修改任何列表,它将全部修改。您可以这样获得不同的列表:a = [[] for _ in xrange(5000)]

茅侃侃

该答案是对约1000个其他Python问题的重复,在这些问题中,列表的初始化方式是这样的。我认为我们需要“常见问题解答”,然后我们可以说“请参阅FAA#27”或其他内容。其他候选:“第N行的语法错误表示N-1行的括号不匹配”,“比较1 <'0'不会得到您认为会的结果,因为它们是不同的类型”。嗯,我想我会发布一个新的Community Wiki问题...
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python