关于复制一个嵌套列表
我本来以为复制一个列表,就是用“=”,最后发现不是
当一个列表出现,它就是一个定海神针
再“=”都是它本身,只是创造了一个代指,所有的改变都是直接改变它,没有创造出另外一根一样的定海神针
比如
a=[0,[0,0]] b=a c=a[:] d=copy.deepcopy(a)
b[1][0]=1
b[0]=1
print a,b,c,d
只有d产生了两根一模一样的定海神针,c只是复制了外层
这时再看abcd四个列表,只有d还是原来那根定海神针
结果:
[1, [1, 0]] [1, [1, 0]] [0, [1, 0]] [0, [0, 0]]
编程中还遇到一个问题,一直我的copy不能作用于列表,可是明明可以,把导入nump的语句删掉就可以了,但是我不能没有numpy
最后,把导入copy的句子放在最后一句,就成功了,我得到两根定海神针,改变一根,另外一根不变
#!/usr/bin/python # -*- coding: utf-8 -*- #import sys #sys.path import math import numpy as np from numpy import * import copy
突然发现前面的代码都有井号,那我放在那干嘛。我根本就不会编程,乱编。