python元組的可變與不可變詳解

2021-09-30 17:41:26 字數 603 閱讀 6537

學過python的人都知道有一種資料型別叫做元組,而元組與列表最重要的區別就在於元組一經定義就不能改變其內容,但元組中的內容真的是完全不可變的嗎,看了下面這段**想必你也會產生這樣的疑問.

**如下:

tuple = (1, 2, 3, [1, 4, 7])

print(tuple)

tuple[3][2] = 100

print(tuple)

在編譯器上執行上述**,結果如下:

從結果來看,元組中資料已經產生了變化,那元組還是不可變的嗎,我們下面就從記憶體來解釋元組的可變與不可變.

上面的圖就是記憶體圖,元組和列表都是引用資料型別,其記憶體空間存放的元素存放位置的位址值,所謂元組的不可變指的是元組所指向的記憶體中的內同不可變,在上圖中體現的是1,2,3和0x200這四個值不可變,而對於0x200這個位址所指向的列表來說,其內容是可以改變的.

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 這符合我們的邏輯嗎?是不...