學習版本3.5.2
python的基礎型別數值、字串和元組都是不可變型別,列表和字典時可變型別
1.number、字串
id(1) #4297546560
id(2) #4297546592
a = 1
id(a) #4297546560
a = 2
id(a) #4297546592
b = 1
id(b) #4297546560
str1 = 'hello'
id(str1) #4314969344
str2 = 'hello'
id(str2) #4314969344
str1 = 'world'
id(str1) #4314969512
當你給a賦值為1的時候,相當於給記憶體中的1加上了乙個名叫a的標籤,改變a的值的時候就像是把名叫a的標籤撕下來貼在了記憶體中的2上面,你不能通過賦值操作把記憶體中的1改為其它的數值。
2.元組
a = (1,2,3)
id(a) #4314976760
a = (2,3,4)
id(a) #4314977048
b = (1,2,3)
id(b) #4314976760
b[1] #2
b[1] = 3
#typeerror: 'tuple' object does not support item assignment
對於元組整體的賦值情況與數值和字串一致,元組的元素是不允許修改的
3.列表和字典
a = [1,2,3]
id(a) #4314937672
b = a
id(b) #4314937672
b = [1,2,3]
id(b) #4314937928
a[1] #2
a[1] = 4
a #[1, 4, 3]
id(a) #4314937672
c =
id(c) #4303008136
d = c
id(d) #4303008136
d =
id(d) #4314963144
c['a'] #1
c['a'] = 3
c #id(c) #4303008136
對於列表和字典,a=[1,2,3]與b=[1,2,3]在記憶體中存在了兩個位置,對它們進行修改就是對對應位置記憶體裡面存的資料進行了修改,b=a相當於給a對應的位址貼上了b的標籤。
python可變型別與不可變型別
不可變資料型別在第一次宣告賦值的時候,會在記憶體中開闢一塊空間,用來存放這個變數被賦的值,而這個變數實際上儲存的,並不是被賦予的這個值,而是存放這個值所在空間的記憶體位址,通過這個位址,變數就可以在記憶體中取出資料了.所謂不可變就是說,我們不能改變這個資料在記憶體中的值,所以當我們改變這個變數的賦值...
Python 可變型別與不可變型別
可變型別 值改變,id不變,證明改的是原值,證明原值是可以被改變的 不可變型別 值改變,id也變了,證明是產生新的值,壓根沒有改變原值,證明原值是不可以被修改的 x 10print id x x 11 print id x 將x的值修改後,原值 10 無法被改變,在記憶體中建立新的位址儲存 11 並...
Python可變型別與不可變型別
可變型別 可以通過一些操作來改變自身的值。例如 列表是一種可變型別,我們可以通過索引來改變的值 通過呼叫方法改變他的值 通過del關鍵字來改變他的值。不可變的型別 不能通過這些操作來改變他的值。例如 字串是一種不可變的型別,不能通過索引來改變他的值 呼叫字串的方法會返回乙個新的字串,並不改變原來的值...