关于复制一个嵌套列表

我本来以为复制一个列表,就是用“=”,最后发现不是

当一个列表出现,它就是一个定海神针

再“=”都是它本身,只是创造了一个代指,所有的改变都是直接改变它,没有创造出另外一根一样的定海神针

比如

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

  突然发现前面的代码都有井号,那我放在那干嘛。我根本就不会编程,乱编。

posted @ 2019-09-16 18:12  haolemao  阅读(269)  评论(0编辑  收藏  举报