在python中,可以直接通过等号赋值,其实它只是引用地址的传递。
例如:
当a的值改变时,b的值也会随之改变。
如果希望b和a没有关系,可以这样:
这样a和b就是两个完全独立的数组。
附,python]关于list的复制
比如list,像:
其实b和a都是引用了同一个对象,即只要不给b重新一个list,那么,对b进行的操作,也会反应到a上面。
例如:
b.remove(7)
那么,a中的7也会被不见了。
然后,就是如何对值进行复制。
就是用上 [:] 。
那么:
然后进行:
b.remove(7)
而结果是,a和b的值已经不一样了。
所以,python的tutorial中有以下的例子:
如果没有a[:],那么,由于a一直在变化,以致进入死循环。
因此,要根据情况,对要不要使用复制list进行判断。
例如:
>>> x=[1 for i in range(10)]
>>> for xx in x:
if(xx==1):x.remove(xx)
>>> x
[1, 1, 1, 1, 1]
>>>
而如果使用了[:]则会不同,因为它对复制的列表进行遍历,而不是对原列表进行遍历。
例如:
>>> x=[1 for i in range(10)]
>>> for xx in x[:]:
if(xx==1):x.remove(xx)
>>> x
[]
>>>