切片賦值,得到的與原變數無關,是兩個不同的物件;直接賦值,引用的是同一個物件。
請看下例
1、直接賦值。
a=[0,2,3,0]
b=a
print b
del(a[1])
這樣寫得到的結果是:
[0, 2, 3, 0]
[0, 3, 0]
2、切片賦值。
b=a[:]
這樣寫得到的結果是
是不一樣吧?
3、現對它們的id做一下輸出就會發現問題所在;
(1)直接賦值得到的id是一樣的:
id(b): 83565448 id(a): 83565448
(2)切片賦值得到的id:
id(b): 83250504 id(a): 83250056
切片賦值,得到的與原變數無關,是兩個不同的物件;直接賦值,引用的是同一個物件。
請看下例
1、直接賦值。
a=[0,2,3,0]
b=a
print b
del(a[1])
print b
這樣寫得到的結果是:
[0, 2, 3, 0]
[0, 3, 0]
2、切片賦值。
a=[0,2,3,0]
b=a[:]
print b
這樣寫得到的結果是
del(a[1])
print b
[0, 2, 3, 0]
[0, 2, 3, 0]
是不一樣吧?
3、現對它們的id做一下輸出就會發現問題所在;
(1)直接賦值得到的id是一樣的:
[0, 2, 3, 0]
[0, 3, 0]
id(b): 83565448 id(a): 83565448
(2)切片賦值得到的id:
[0, 2, 3, 0]
[0, 2, 3, 0]
id(b): 83250504 id(a): 83250056