python 中赋值 copy() 与 ' = ' 号以及比较符'=='号 与 'is'

版权声明:有错误还请斧正,感激不尽。 https://blog.csdn.net/Gentle_Guan/article/details/78289949

关于比较符号’==’号 与 ‘is’

这里主要是为下文铺垫
== 比较操作符:用来比较两个对象是否相等,value做为判断因素
is 同一性运算符:比较判断两个对象是否相同,id做为判断因素

关于copy()与 =

主要是今天在写数组的时候发现了 这个问题
想到了 python中的数组赋值以及对象问题
简单的写一下 好记性不如烂笔头
直接上代码 :

import copy

a = [1,2,3]
c1 = copy.copy(a)
c2 = copy.deepcopy(a)
c3 = a

print "a :",a
print "c1 copy :",c1
print "c2 deepcopy :",c2
print "c3 = :",c3

print "c1 = a :",c1 == a
print "c2 = a :",c2 == a
print "c3 = a :",c3 == a

print "c1 is a :",c1 is a
print "c2 is a :",c2 is a
print "c3 is a :",c3 is a

print "单个赋值 :a2 = 10"
a[2] = 10
print '-'*10
print "a :",a
print "c1 copy :",c1
print "c2 deepcopy :",c2
print "c3 = :",c3

print "c1 = a :",c1 == a
print "c2 = a :",c2 == a
print "c3 = a :",c3 == a

print "c1 is a :",c1 is a
print "c2 is a :",c2 is a
print "c3 is a :",c3 is a

print "整体赋值 :10 1 1"
a = [10,1,1]
print '-'*10

print "a :",a
print "c1 copy :",c1
print "c2 deepcopy :",c2
print "c3 = :",c3

print "c1 = a :",c1 == a
print "c2 = a :",c2 == a
print "c3 = a :",c3 == a

print "c1 is a :",c1 is a
print "c2 is a :",c2 is a
print "c3 is a :",c3 is a

# 这里是输出
'''
a : [1, 2, 3]
c1 copy : [1, 2, 3]
c2 deepcopy : [1, 2, 3]
c3 = : [1, 2, 3]
c1 = a : True
c2 = a : True
c3 = a : True
c1 is a : False
c2 is a : False
c3 is a : True
单个赋值 :a2 = 10
----------
a : [1, 2, 10]
c1 copy : [1, 2, 3]
c2 deepcopy : [1, 2, 3]
c3 = : [1, 2, 10]
c1 = a : False
c2 = a : False
c3 = a : True
c1 is a : False
c2 is a : False
c3 is a : True
整体赋值 :10 1 1
----------
a : [10, 1, 1]
c1 copy : [1, 2, 3]
c2 deepcopy : [1, 2, 3]
c3 = : [1, 2, 10]
c1 = a : False
c2 = a : False
c3 = a : False
c1 is a : False
c2 is a : False
c3 is a : False

'''

关于 = 号
1 . 相当于引用
2 . 当a重新声明的时候 两者互不相关

关于copy
关于deepcopy
在目前的实践中 这俩貌似一样
就是复制一份
互相不相关

猜你喜欢

转载自blog.csdn.net/Gentle_Guan/article/details/78289949