python 可變型別和不可變型別

2022-02-14 19:48:15 字數 823 閱讀 4614

1. 什麼是不可變型別

變數對應的值中的資料是不能被修改,如果修改就會生成乙個新的值從而分配新的記憶體空間。

不可變型別:

數字(int,long,float)

布林(bool)

字串(string)

元組(tuple)

2. 什麼是可變型別

變數對應的值中的資料可以被修改,但記憶體位址保持不變。

可變型別:

列表(list)

字典(dict)

記憶體位址變化即不可變型別,

記憶體位址不變化即可變型別。

所以說常用的字串,列表,字典這三種資料型別,字串只能通過索引取值,不能通過索引改值;列表可以通過索引取值和改值;字典則可以通過key來取值和改值。

3. 為什麼生成以上兩種情況

因為python中的值是通過引用(位址值)傳遞的,不可變型別的值一旦被修改後會建立乙個記憶體空間並且生成新的位址值,可變型別的值會在原記憶體空間中被修改。

4. 不可變型別執行過程和記憶體分析

5. 可變型別執行過程和記憶體分析

python不可變型別和可變型別

python變數可以分為兩種型別 不可變型別 數字 字串 元組 不可變集合 可變型別 列表 字典 可變集合 python所宣告的變數都以物件的形式存在,存在於機器的固定記憶體之中。可以理解為變數名為物件的指標 如宣告a 3,則a指向儲存3的空間,python通過使用計數器的方式來判斷空間的引用情況,...

python類的可變型別成員和不可變型別成員的區別

usr bin python coding utf 8 class foo1 object x 1 class foo2 object x f1 foo1 f2 foo2 f1.x 3 print f1.x print foo1.x f2.x 101 3 print f2.x print foo2....

Python的可變和不可變型別

一 可變型別 不可雜湊型別就是可變型別 unhashable 值改變,id不變,證明改的是原值,證明原值是可以改變的。總結 list,dict 都為可變型別,整體的位址不變,變的是裡面的值,針對字典多說點 key必須是不可變型別,value可以是任意型別。list是可變型別 l aaa bbb cc...