1.12. copy 模塊
copy 模塊包含兩個函數, 用來拷貝對象, 如 Example 1-64 所示.
copy(object) => object 創建給定對象的 "淺/淺層(shallow)" 拷貝(copy). 這裏 "淺/淺層(shallow)" 的意思是複製對象本身, 但當對象是一個容器 (container) 時, 它的成員仍然指向原來的成員對象.
1.12.0.1. Example 1-64. 使用 copy 模塊複製對象
File: copy-example-1.py
import copy
a = [[1],[2],[3]]
b = copy.copy(a)
print "before", "=>"
print a
print b
# modify original
a[0][0] = 0
a[1] = None
print "after", "=>"
print a
print b
before =>
[[1], [2], [3]]
[[1], [2], [3]]
after =>
[[0], None, [3]]
[[0], [2], [3]]
你也可以使用[:]語句 (完整切片) 來對列表進行淺層複製, 也可以使用 copy 方法複製字典.
相反地, deepcopy(object) => object 創建一個對象的深層拷貝(deepcopy), 如 Example 1-65 所示, 當對象爲一個容器時, 所有的成員都被遞歸地複製了。
1.12.0.2. Example 1-65. 使用 copy 模塊複製集合(Collections)
File: copy-example-2.py
import copy
a = [[1],[2],[3]]
b = copy.deepcopy(a)
print "before", "=>"
print a
print b
# modify original
a[0][0] = 0
a[1] = None
print "after", "=>"
print a
print b
before =>
[[1], [2], [3]]
[[1], [2], [3]]
after =>
[[0], None, [3]]
[[1], [2], [3]]
copy 模塊
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章
string 模塊:字符串處理
franktan2010
2018-09-04 08:36:16
sys 模塊:程序運行時的處理
franktan2010
2018-09-04 08:36:16
os模塊:處理文件,文件夾,進程
franktan2010
2018-09-04 08:36:16
PYWIN32 + WMI模塊:獲取WINDOWS系統基本信息
franktan2010
2018-09-04 08:36:16
tempfile模塊
franktan2010
2018-09-04 08:36:15
shutil模塊:複製文件和文件夾,文件壓縮
franktan2010
2018-09-04 08:36:15
types 模塊
franktan2010
2018-09-04 08:36:15
os.path模塊:處理長文件名(路徑名)的函數
franktan2010
2018-09-04 08:36:15
socket 模塊:客戶端或是服務器的 socket編程
franktan2010
2018-09-04 08:36:15
md5模塊和hashlib模塊
franktan2010
2018-09-04 08:36:15
Decimal模塊:小數的處理
franktan2010
2018-09-04 08:36:15
fileinput模塊:讀取,替換文本內容
franktan2010
2018-09-04 08:36:14
getopt 模塊:命令行選項和參數的函數
franktan2010
2018-09-04 08:36:14
timeit 模塊: 測試時間性能
franktan2010
2018-09-04 08:36:14
glob 模塊
franktan2010
2018-09-04 08:35:49