上次在使用python的List时候发现了一个挺有意思的问题,在这里记录一下。
打算从文件读入一系列数,7个一组,最后再放在一个大的List里面,每次都会用新读的一个换掉原来的第一个。
原本写的是
alldata=[]
datalist=[]
for ....:
del(datalist[0])
读入x
datalist.append(x)
alldata.append(datalist)
结果发现最后alllist里的每一项都是一样的,都是最后更改完的结果,这说明每次都用datalist存储时alldata并没有真的把当前的datalist加入,而是保存最后一次的结果。
最后解决方法是用一个类似中间变量temp的数组,每次修改datalist之前先将其值赋给中间变量,再把它重置,成功解决。