Python (深淺拷貝)
- 2020 年 5 月 3 日
- 筆記
- 上海多測師, 上海軟體測試培訓, 多測師, 多測師_Python, 多測師線上培訓, 廣州多測師, 廣州軟體測試培訓, 深圳多測師, 深圳軟體測試培訓, 線上軟體測試培訓, 軟體測試培訓
1、深拷貝 –> 克隆一份,修改拷貝後的內容不對原對象內容產生影響
- 拷貝後修改序列中元素內容,注意:被修改的元素不能為一個序列中的某個值
a = [["北京多測師","成都多測師"],"上海多測師","深圳多測師","廣州多測師"] b = a.copy() b[1] = "天津多測師" print(a) print(b) # 結果如下 [['北京多測師', '成都多測師'], '上海多測師', '深圳多測師', '廣州多測師'] # 列表 a 中的 "上海多測師" 未修改為 "天津多測師" [['北京多測師', '成都多測師'], '天津多測師', '深圳多測師', '廣州多測師'] # 列表 b 中的 "上海多測師" 修改為 "天津多測師"
- copy 模組中的 deepcopy()
import copy a = [["北京多測師","成都多測師"],"上海多測師","深圳多測師","廣州多測師"] b = copy.deepcopy(a) b[0][0] = "天津多測師" print(a) print(b) # 結果如下 [['北京多測師', '成都多測師'], '上海多測師', '深圳多測師', '廣州多測師'] # 原列表 a 未發生改變 [['天津多測師', '成都多測師'], '上海多測師', '深圳多測師', '廣州多測師'] # 列表 b 中的第一個元素中的 "北京多測師" 修改為 "天津多測師"
2、淺拷貝 –> 修改拷貝後的內容原對象內容隨之修改
a = [["北京多測師","成都多測師"],"上海多測師","深圳多測師","廣州多測師"] b = a.copy() b[0][0] = "天津多測師" print(a) print(b) # 結果如下 [['天津多測師', '成都多測師'], '上海多測師', '深圳多測師', '廣州多測師'] [['天津多測師', '成都多測師'], '上海多測師', '深圳多測師', '廣州多測師'] # 列表 a 和 b 中的 "北京多測師" 都修改為 "天津多測師"
- copy 模組中的 copy()
import copy a = [["北京多測師","成都多測師"],"上海多測師","深圳多測師","廣州多測師"] b = copy.copy(a) b[0][0] = "天津多測師" print(a) print(b) # 結果如下 [['天津多測師', '成都多測師'], '上海多測師', '深圳多測師', '廣州多測師'] [['天津多測師', '成都多測師'], '上海多測師', '深圳多測師', '廣州多測師'] # 列表 a 和 b 中的 "北京多測師" 都修改為 "天津多測師"