我正在尝试列出大约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条经验 获得超21个赞
该答案是对约1000个其他Python问题的重复,在这些问题中,列表的初始化方式是这样的。我认为我们需要“常见问题解答”,然后我们可以说“请参阅FAA#27”或其他内容。其他候选:“第N行的语法错误表示N-1行的括号不匹配”,“比较1 <'0'不会得到您认为会的结果,因为它们是不同的类型”。嗯,我想我会发布一个新的Community Wiki问题...
添加回答
举报
0/150
提交
取消