使用copy模組來實現列表 list 拷貝

2021-08-22 19:23:43 字數 1366 閱讀 1180

先來個簡單的操作:

a=[1,2,3]

b=ab.remove(1)

print('a=',a)

print('b=',b)

會發現結果:

a=[2,3]

b=[2,3]

是不是很奇怪,我修改b,為什麼a的值也跟著改變了呢?

——這種做法其實並未真正生成乙個新的列表,b指向的仍然是a所指向的物件。這樣,如果對a或b的元素進行修改,a,b的值同時發生變化。

所以要不改變a的值,需要使用copy來進行拷貝,此時進行如下操作:

a=[1,2,3]

b=a.copy()

b.remove(1)

print('a=',a)

print('b=',b)

會發現結果變成:

a=[1,2,3]

b=[2,3]

從而不會導致a的值的改變,此處的copy使用也可以用b=a[:]來代替

但是,需要注意的是

如果a=[1,[2,3],4],此時的copy()會對a[1]進行複製引用處理,而不會形成新的表,舉例:

a=[1,[2

,3],4]

b=a.copy()

(5)print('a1=',a)

print('b1=',b)

(6)print('a2=',a)

print('b2=',b)

結果是:

a1=[1,[2,3,5],4]

b1=[1,[2,3,5],4]

a2=[1,[2,3,5],4]

b2=[1,[2,3,5],4,6]

從上可知,對b[1]進行操作,會影響a

那怎麼解決這個問題呢?這時就需要使用copy模組中的deepcopy函式了。

import

copy;

a=[1,[2

,3],4]

b=copy.deepcopy(a)

(5)print('a1=',a)

print('b1=',b)

(6)print('a2=',a)

print('b2=',b)

結果會是:

a1=[1,[2,3],4]

b1=[1,[2,3,5],4]

a2=[1,[2,3],4]

b2=[1,[2,3,5],4,6]

jquery使用列表標籤實現的可拖拽listbox

前兩天遇到朋友提到listbox.所以心血來潮,花了一下午時間自己使用jquery,利用列表標籤實現了乙個listbox.還未來得及優化,但功能已實現並可以使用,在此希望與大家分享 jquery listbox 2.2 效果圖 一.設計思路 1.標籤的使用 既然是列表,那無疑選擇使用列表標籤 ul,...

如何用li標籤來實現網頁導航選單

用li標籤來做導航選單是很多 都採用的方式,但是對於div css新手來說,用li標籤來實現網頁的導航選單並不容易,它涉及到浮動及內聯化和清除浮動這方面。在這裡,我寫了乙個例項,新手朋友可以參考一下它。這個例項的幾個要點在於 1 li標籤的css需要將float屬性設定為left 這裡就成了左浮動 ...

python list列表模組使用方法

my list 1,2,3,4,5 print my list 1 print my list 1 my list 1,2,3,4,5 print my list 1 4 my list 1 4 print my list 3 my list 3 print my list 1 my list 1 ...