可變與不可變的區別是改變內容之後id是否改變。
舉個例子:
tuple1 =(1
,2,3
)print(id
(tuple1)
)# 2224284747400
tuple1 =(1
,2)print(id
(tuple1)
)# 2224286276488
list1 =[1
,2,3
]print(id
(list1)
)# 22242880003924)
print(id
(list1)
)# 2224288000392
在這個例子裡面,改變元組之後id改變,但是在列表裡加上乙個元素之後,列表的id沒有改變。
但是我總感覺這裡查了點什麼,這個例子舉得可能不是很好,因為我試過以同樣的方式更改列表,但是id發生了變化,**如下。
list1 =[1
,2,3
]print(id
(list1)
)# 1727363377160
list1 =[1
]print(id
(list1)
)# 1727360392584
不可變型別:int,str,float,tuple,frozenset( frozenset() 返回乙個凍結的集合,凍結後集合不能再新增或刪除任何元素。)
可變型別:dict,list,set。
python可變與不可變
可變與不可變型別的實質實際上就是儲存機制的不同 不可變型別 比如字串 被稱為不可變的字串行,每個字元底層均有規範的unicode碼對應,記憶體規定無法對單一的乙個字元進行修改,要修改字串必須重新指向乙個全新的字串 可變型別 一方面,該列表可以保證在位址不變的前提下,改變列表內容 另一方面,該引用也可...
python可變與不可變
不可變作用和意義 物件所指的記憶體中的值是可以改變的。變數名儲存的是乙個位址,該位址指向乙個具體的物件,並且不管對變數的值進行怎樣的操作,都不會改變變數名的儲存位址。字典dict 列表list 集合set 1.list list1 1 2,3 4 print list1,id list1 1,2,3...
Python中不可變與可變
在python的資料型別中,有用可變和不可變的兩種型別,那下面就來看一看兩種資料型別有什麼區別 old var hello print old var hello new var old var new var world print old var hello world 這符合我們的邏輯嗎?是不...