python如何创建指定维度的列表

源码货栈 论文问答 1

我想创建一个一个列表:

a=[[]*4]
[[],[],[],[]]

但是通过append:

a[0].append(1)
[[1], [1], [1], [1]]

发现a的子元素共用同一片内存。

请问如何创建一个多维的列表,使列表内的list元素不共用同一内存?

回复

共2条回复 我来回复
  • 毕设小屋
    这个人很懒,什么都没有留下~
    评论

    你上面写错了,是 a=[[]]*4

    它是将一个对象的引用复制了4遍,所以其实指向了同个对象

    如果你要生成空的列表,那么就是用for循环

    a = []
    for i in range(4):
    a.append([])
    
    0条评论
  • 代码小屋
    这个人很懒,什么都没有留下~
    评论

    最简单的

    a = list(1 for i in range(4))
    a.reshape((4,1))
    
    0条评论

发表回复

登录后才能评论