python 中賦值 copy() 與 ' = ' 號以及比較符'=='號 與 'is'
阿新 • • 發佈:2019-01-06
關於比較符號’==’號 與 ‘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
在目前的實踐中 這倆貌似一樣
就是複製一份
互相不相關