python中,變數名儲存的值記憶體位址,訪問變數名要通過變數名儲存的記憶體位址去訪問對應的值。
# 不可變型別:int,float,str,bool
# 驗證:
a =1
print(id
(a))
# 140713194935968
a =2
print(id
(a))
# 140713194936000
# 證明int型別修改了值後位址發生了改變,即int型別是不可變型別
b =1.1
print(id
(b))
# 1959099993424
b =2.2
print(id
(b))
# 1959099993360
# 證明float型別修改了值後位址發生了改變,即float型別是不可變型別
c ='hello'
print(id
(c))
# 2749644874480
c ='world'
print(id
(c))
# 2749644471216
# 證明str型別修改了值後位址發生了改變,即str型別是不可變型別
# 可變型別:list,dict
# 驗證:
my_list =[1
,2,3
,4,5
]print(id
(my_list)
)# 17368109397126)
print(id
(my_list)
)# 1736810939712
# 證明list型別修改了元素之後位址沒有發生變化,即list是可變型別
my_dict =
print(id
(my_dict)
)#2348975339584
my_dict[
'name']=
'xiongda'
print(id
(my_dict)
)# 2348975339584
# 證明dict型別修改了元素之後位址沒有發生變化,即dict型別是可變型別
總結:
可變與不可變實際上就是看修改了變數值之後,變數名的記憶體位址發不發生變化,若發生變化,則是不可變型別,不允許在原記憶體空間上進行值的修改操作;若沒有發生變化,則是可變型別,允許在原來的記憶體空間上進行值的修改操作
python之可變資料型別與不可變資料型別
可變資料型別與不可變資料型別的區別 當不同的兩個變數賦值相同時,變數位址不相同的為可變資料型別,反之為不可變資料型別 不可變資料型別有哪些 number 數字 string 字串 tuple 元組 可變資料型別有哪些 set 集合 list 列表 dictionary 字典 使用 is 運算子判斷資...
Python 可變與不可變資料型別
可變資料型別有 list和dict 不可變資料型別有 int,float,string和tupe 對於不可變資料型別 不允許值發生變化,如果改變了變數的值,必然會建立新的物件 小整數和string型別不適用 對於值相同的變數指向的記憶體位址是同乙個 對於string型別和256範圍內的int型別是這...
python中可變資料型別和不可變資料型別(詳解)
以下所有的內容都是基於記憶體位址來說的。可變資料型別 變數引用的資料型別,在更改數值的時候,存在不開闢新記憶體 的行為,此資料型別為可變資料型別。不可變資料型別 變數引用的資料型別,在更改數值的時候,不存在不開闢新記憶體 的行為,此資料型別為不可變資料型別。在 python 中,strings,tu...