python 中變量的賦值,復制,以及直接修改內存。


之前以為python中的賦值是賦值,事實告訴我這只是淺拷貝,只是指針(或者引用)的賦值,即兩者引用(指向)的內存還是同一個,只有深拷貝才能完全把內存空間里的值再創建一份然后放到一個新地址里供新的變量引用,類比c++的深淺拷貝。

import copy
a=[1,2,3,[4,5,6]]
b=a    #賦值
c=copy.copy(a)    #shallow copy
d=copy.deepcopy(a)      #Deep copy

 

使用is關鍵字判斷兩個變量是否指向同一個內存空間。

如果想使用深拷貝就調用copy庫,一般的賦值即使是自定義的對象也是淺拷貝。

 

 

 

python中也有數組,並不是list

# Array[]:相同類型元素的序列
from array import array
a1=array('h',[1,2,3])
memv=memoryview(a1)#內存視圖
len(memv)
memv[0]=55
a1
dir(a1)#array相關操作

  

這里可以看到可以用數組名字直接操作內存中的內容。(利用視圖,其實應當是找地址。)

tuple不能改變元素的值,但是可以增減對應元素的值。

set用{}儲存不重復的值。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM