1. 程式人生 > >人生苦短之Python列表拷貝

人生苦短之Python列表拷貝

strong 函數名 如何 模塊 深拷貝 工廠函數 ont 什麽 tro

列表拷貝的幾種方法:

1.工廠函數 b=list(a)

>>> a=[1,2,3,4]

>>> b=list(a)

>>> b

[1, 2, 3, 4]

>>> id(a)

4338142672

>>> id(b)

4300339608

2.切片 c=a[:]

>>> c=a[:]

>>> c

[1, 2, 3, 4]

>>> id(c)

4338094736

3.copy模塊

>>> import copy

>>> d = copy.copy(a)

>>> d

[1, 2, 3, 4]

>>> id(d)

4338106448

以上三種方法都屬於淺復制,如果復制的列表中還存在列表的話,是沒辦法完全復制的,也就是說如果 a=[[1,2],3,4] ,使用上面的方法復制個b,如果改變a中列表[1,2]的值,那麽b中也會改變,如何實現深復制呢?

深拷貝

使用copy模塊中的copy.deepcopy方法就可以,看函數名也知道這是個什麽樣的函數了。

人生苦短之Python列表拷貝