Python - 作为浅拷贝的list对象乘法
生活随笔
收集整理的這篇文章主要介紹了
Python - 作为浅拷贝的list对象乘法
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
運行下面這段代碼
# !/usr/bin/env python3 # -*- coding=utf-8 -*- temp_a = [[0]*2]*3 temp_b = [[0]*2 for i in range(3)] print(temp_a) print(temp_b) print(id(temp_a[0]) == id(temp_a[1])) print(id(temp_b[0]) == id(temp_b[1])) temp_a[0][0] = 1 temp_b[0][0] = 1 print(temp_a) print(temp_b)
會得到奇妙的結果
[[0, 0], [0, 0], [0, 0]] [[0, 0], [0, 0], [0, 0]] True False [[1, 0], [1, 0], [1, 0]] [[1, 0], [0, 0], [0, 0]]
temp_a和temp_b的形式是一樣的,但是其中列表對象的地址有問題。
重點在輸出的第5行,反映了程序第13行的修改。對temp_a中某個對象的修改會影響到所有對象,而temp_b不會。
可以看出list對象的乘法操作是淺拷貝,在使用時要特別注意。
總結
以上是生活随笔為你收集整理的Python - 作为浅拷贝的list对象乘法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [Pwn之路]根据所给库,获得远程同环境
- 下一篇: 流程挖掘里程碑:国产RPA首次入选顶级行