python 列表嵌套 元素全部相同

版权声明:转载请注明 谢谢 https://blog.csdn.net/bigsungod/article/details/81268117

当我打算将数据处理成二维形式时,我这么做的

x = []
list = []
for i in range(num):
    x.clear()
    for j in range(len(data[i])):
             x.append(data[i][j])
    list.append()

但是结果却是这种形式

[[xxxx],[xxxx]......]
也就是说 list里面的小列表完全是重复的(元素内容为最后append进去的x列表的值)

后来 才明白列表的append机制是记录的元素的地址 比如在这里,x虽然clear了,但是地址没变,变得只是x里面的值,所以最后list里面记录的全是len(list)个相同的元素

修改方法:将x.clear()改成x = [ ](第一行也就没用了),这样每次都会开辟新的内存。

猜你喜欢

转载自blog.csdn.net/bigsungod/article/details/81268117