python複製與引用用法分析

2022-10-04 23:27:19 字數 954 閱讀 6038

簡單複製是引用

a=[1,23,4]

b=a #這是引用

b.append(2323)

print(a,b) #([1, 23, 4, 2323], [1, 23, 4, 2323])

使用copy.copy進行淺拷貝

impor copy

c=copy.copy(b)#拷貝

c.append(1)

print(b,c)#([1, 23, 4, 2323], [1, 23, 4, 2 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複製與引用用法分析

本文位址:

C 引用用法

引用就是給變數取外號而已。void r x 不能建立void型別引用 int r x 不能建立引用的引用 int p x 不能建立指向引用的指標,但是可以建立指向指標的引用 int ra 10 a 不能建立引用的陣列 總結 引用一有三無 有型別,無引用,無指標,無陣列 includeusing na...

c 的引用用法

一 引用簡介 引用就是某一變數 目標 的乙個別名,對引用的操作與對變數的直接操作完全一樣。引用的宣告方法 類別識別符號 引用名 目標變數名 例1 int a int ra a 定義引用ra,它是變數a的引用,即別名。說明 二 引用應用 引用作為引數 void swap int p1,int p2 函...

python 引用與複製

a b 這樣的賦值,就會建立對b的引用,對於象數字和字串這樣的不可變的物件,這種賦值實際是建立了b的乙個副本 a hello b a id a id b b is a true a 1000 b hello 對於可變物件,比如字典和列表,a和b引用的是同乙個物件,修改其中任意乙個變數都會影響到另乙個...