Python3.7--数据结构--引用(Refer)

引用 (refer),如果有前几天看我发的注意力test矩阵的输出就应该有注意到一个点就是我在产生随机数就同时赋值给两个数组。

image.png

这里引用如果只是赋值给另一个变量,应该是地址引用,而不是重新申请一个地址空间存这个变量,所以你在对其中一个变量在操作时就会相互影响。
这点在编程时一定要注意。
接下来我们看几个例子:

  • 赋值 变量mylist=shoplist
  • mylist.sort
  • mylist.append
  • 切片赋值 mylist_slice=shoplist[:]
  • 删除 def mylist_slice[0]

print('Simple   Assignment')
shoplist    =   ['apple',   'mango',    'carrot',   'banana']
#   mylist  只是指向同一对象的另一种名称
mylist  =   shoplist
print(mylist)
#['apple', 'mango', 'carrot', 'banana']
print(shoplist)
#['apple', 'mango', 'carrot', 'banana']
#进行排序
mylist.sort();
print(mylist)
#['apple', 'banana', 'carrot', 'mango']
print(shoplist)
#['apple', 'banana', 'carrot', 'mango']
#增加一项
shoplist.append('pear')
print(mylist)
#['apple', 'banana', 'carrot', 'mango', 'pear']
print(shoplist)
#['apple', 'banana', 'carrot', 'mango', 'pear']

print('Copy by  making  a   full    slice')
#那需要如何赋值才不会这样呢?
mylist_slice = shoplist[:];
print(mylist_slice);
print(shoplist);
#['apple', 'banana', 'carrot', 'mango', 'pear']

print("del 第一个项目")
del mylist_slice[0];
print(mylist_slice);
#['banana', 'carrot', 'mango', 'pear']
print(shoplist);
#['apple', 'banana', 'carrot', 'mango', 'pear']


你可能感兴趣的:(Python3.7--数据结构--引用(Refer))