可變資料型別有:list和dict
不可變資料型別有:int, float, string和tupe
對於不可變資料型別:不允許值發生變化,如果改變了變數的值,必然會建立新的物件(小整數和string型別不適用),對於值相同的變數指向的記憶體位址是同乙個(對於string型別和256範圍內的int型別是這樣,但對於大整數,float型和元組不是這樣)。
相同值的string型別指向的是同乙個物件
>>> str1="nihao"
>>> str2="nihao"
>>> id(str1)
2405853153968
>>> id(str2)
2405853153968
改變string型別變數的值會使變數指向的記憶體位址發生改變
>>> str3="hello"
>>> id(str3)
2405853154864
>>> str3="nihao"
>>> id(str3)
2405853153968
對於int型別變數,如果值是0-256範圍內,則指向的是同乙個物件,
變數的值不在0-256範圍內,則即使變數的值相同也是不同的物件
>>> n1=256
>>> n2=256
>>> id(n1)
1781304768
>>> id(n2)
1781304768
>>> n3=257
>>> n4=257
>>> id(n3)
2405852408464
>>> id(n4)
2405852408560
值相同的浮點數和元組不是同乙個物件
>>> f1 = 1.1
>>> f2 = 1.1
>>> id(f1)
2405850948088
>>> id(f2)
2405850948112
>>>
>>> t1 = (1,2,3)
>>> t2 = (1,2,3)
>>> id(t1)
2405853097272
>>> id(t2)
2405853120192
但對於不可變資料型別:允許變數的值發生改變,改變變數的值不會新建物件,對於值相同的變數是不同的物件
>>> dict1 =
>>> id(dict1)
2405852269448
>>>
>>> dict1["a"] = 12
>>> id(dict1)
2405852269448
>>> dict1
python之可變資料型別與不可變資料型別
可變資料型別與不可變資料型別的區別 當不同的兩個變數賦值相同時,變數位址不相同的為可變資料型別,反之為不可變資料型別 不可變資料型別有哪些 number 數字 string 字串 tuple 元組 可變資料型別有哪些 set 集合 list 列表 dictionary 字典 使用 is 運算子判斷資...
python中可變資料型別和不可變資料型別(詳解)
以下所有的內容都是基於記憶體位址來說的。可變資料型別 變數引用的資料型別,在更改數值的時候,存在不開闢新記憶體 的行為,此資料型別為可變資料型別。不可變資料型別 變數引用的資料型別,在更改數值的時候,不存在不開闢新記憶體 的行為,此資料型別為不可變資料型別。在 python 中,strings,tu...
python中不可變資料型別和可變資料型別
在學習python過程中我們一定會遇到不可變資料型別和可變資料型別。以下所有的內容都是基於記憶體位址來說的。在python中資料型別有 整型,字串,元組,集合,列表,字典。接下來我們用例子來一一檢視他們分別屬於不可變資料型別還是可變資料型別。a 1 print id a type a a 2 pri...