def Rolldecom(data, PERIODS, MODE=None): import copy #使用copy函数,避免append时由于指向地址(而不是真正将值赋予列表)而导致的当对象改变时,列表也跟着改变 trainX, trainY = data[:-PERIODS], data[-PERIODS:] trainX = list(trainX) trainY = list(trainY) trainX_all = [] trainX_all.append(copy.deepcopy(trainX)) for i in range(PERIODS): trainX.append(copy.deepcopy(trainY[i])) trainX_all.append(copy.deepcopy(trainX)) return trainX_all, trainX, trainY
仅做记录
解决时参考了以下博文,地址为:
Python中使用append添加赋值后,内存地址相同导致不同变量间数据发生变化的解决方法_不定时总结的那啥的博客-CSDN博客_python变量内存地址相同