本文實例講述了python復制與引用用法。分享給大家供大家參考。具體分析如下:
簡單復制是引用
a=[1,23,4]b=a #這是引用b.append(2323)print(a,b) #([1, 23, 4, 2323], [1, 23, 4, 2323])
使用copy.copy進行淺拷貝
import copyc=copy.copy(b)#拷貝c.append(1)print(b,c)#([1, 23, 4, 2323], [1, 23, 4, 2323, 1])list1=[['a'],[1,2,4],[23,'a']]list_copy=copy.copy(list1)#淺拷貝,生成了一個新對象,但是新對象內的屬性和內容仍然是原對象的引用#當對新對象進行整體修改的時候修改的是本身list_copy.append('append')print(list_copy)#[['a'], [1, 2, 4], [23, 'a'], 'append']print(list1)#[['a'], [1, 2, 4], [23, 'a']]#當對新對象的內容進行修改的時候修改的是原對象,因為它仍然是引用list_copy[1].append('append+')print(list_copy)#[['a'], [1, 2, 4, 'append+'], [23, 'a'], 'append']print(list1)#[['a'], [1, 2, 4, 'append+'], [23, 'a']]
使用copy.deepcopy進行迭代拷貝,之后就可以更改新對象的屬性而不影響原對象了,只是效率會下降和內存占有量會上升。
對于list,dict,set等可直接使用x(object),object為相應類型,進行拷貝,這是最簡單最直接有效地方式。
希望本文所述對大家的Python程序設計有所幫助。
新聞熱點
疑難解答