1. 程式人生 > >python 中賦值 copy() 與 ' = ' 號以及比較符'=='號 與 'is'

python 中賦值 copy() 與 ' = ' 號以及比較符'=='號 與 'is'

關於比較符號’==’號 與 ‘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
在目前的實踐中 這倆貌似一樣
就是複製一份
互相不相關