【问题标题】:Having trouble making a list of lists of a designated size [duplicate]在制作指定大小的列表时遇到问题[重复]
【发布时间】:2013-06-29 00:17:37
【问题描述】:

我正在尝试制作一个包含大约 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)

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

【问题讨论】:

    标签: python counter


    【解决方案1】:

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

    你可以像这样得到不同的列表:

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

    【讨论】:

    • 这个答案与其他大约 1000 个 Python 问题的重复,其中列表列表以这种方式初始化。我认为我们需要“经常回答的答案”,然后我们可以说“参见 FAA #27”或其他任何内容。其他候选人:“第 N 行的语法错误意味着第 N-1 行的括号不匹配”,“比较 1
    猜你喜欢
    • 1970-01-01
    • 2020-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-05
    • 2018-09-03
    • 2013-05-02
    相关资源
    最近更新 更多