Python語法--可變型別和不可變型別

小昀小杭發表於2020-11-09

不可變型別:只要變數的值改變,地址也跟著改變就是不可變型別。因為不可變的型別需要重新申請一段記憶體地址空間來儲存改變後的資料,所以地址會改變
常見不可變的資料型別:int str tuple float

可變型別:內容發生改變,地址不改變,就是可變型別。因為對其的操作可以在原地址直接修改
常見可變資料型別:list dict set
int型別不可變的原因:
python會提前生成一個小整數池,每個整數對應一個記憶體地址,當將一個整數值賦給變數時,此變數的地址指向整數對應的地址。
這樣會節省記憶體空間。
list可變原因:
定義一個list型別的時候,系統會申請一段固定長度地址空間(該空間可以存放50000個資料)存放list,所以當需要新增刪除元素時,只需在申請好的記憶體空間內操作即可,所以地址不發生改變。
tuple不可變原因:
定義tuple型別時開闢了一段固定的記憶體空間,視你定義時的資料個數而定,所以tuple不能追加元素,只能重新申請一段新的記憶體地址來存放修改後的tuple。
isinstance函式:
判斷一個資料是否為指定的資料型別,返回布林型別的值
id()函式:
返回變數的記憶體地址

相關文章