Python 可變型別與不可變型別

2021-10-03 13:58:37 字數 1384 閱讀 1660

可變型別:值改變,id不變,證明改的是原值,證明原值是可以被改變的

不可變型別:值改變,id也變了,證明是產生新的值,壓根沒有改變原值,證明原值是不可以被修改的

x =

10print(id

(x))

x =11

print(id

(x))

將x的值修改後,原值「10」無法被改變,在記憶體中建立新的位址儲存「11」,並修改x的記憶體位址,故int是不可變型別。

x=

3.1print(id

(x))

x=3.2

print(id

(x))

將x的值修改後,原值「31.」無法被改變,在記憶體中建立新的位址儲存「3.2」,並修改x的記憶體位址(id),故意float是不可變型別。

x=

"程式猿過家家"

print(id

(x))

x='謝晨'

print(id

(x))

將x的值修改後,原值「程式猿過家家」無法被改變,在記憶體中建立新的位址儲存「謝晨」,並修改x的記憶體位址(id),故str是不可變型別。

l=

['aaa'

,'bbb'

,'ccc'

]print(id

(l))l[0

]='aaa'

print

(l)print(id

(l))

將l當中值「aaa」修改後,l的記憶體位址並沒有發生變化,變化的是l[0]指向的記憶體位址,故list是可變型別。

dic=

print(id

(dic)

)dic[

'k1']=

333print(id

(dic)

)

將dic當中鍵『k1』的值修改為333後,dic指向的記憶體位址並沒有沒有發生,變化的是dic[k1]指向的記憶體位址,故dict是可變型別。

b =

true

print(id

(b))

b =false

print(id

(b))

將b的修改後,原值無法被改變,在記憶體中建立新的位址儲存「謝晨」,並修改b的記憶體位址(id),故bool是不可變型別。

總結:

int、float、str、bool被設計成了不可分割的整體,不能夠被改變,共性是他們的值都唯一。

list、dict被設計成了不可變型別,他們可以由多個值組成。

python可變型別與不可變型別

學習版本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 429754656...

python可變型別與不可變型別

不可變資料型別在第一次宣告賦值的時候,會在記憶體中開闢一塊空間,用來存放這個變數被賦的值,而這個變數實際上儲存的,並不是被賦予的這個值,而是存放這個值所在空間的記憶體位址,通過這個位址,變數就可以在記憶體中取出資料了.所謂不可變就是說,我們不能改變這個資料在記憶體中的值,所以當我們改變這個變數的賦值...

Python可變型別與不可變型別

可變型別 可以通過一些操作來改變自身的值。例如 列表是一種可變型別,我們可以通過索引來改變的值 通過呼叫方法改變他的值 通過del關鍵字來改變他的值。不可變的型別 不能通過這些操作來改變他的值。例如 字串是一種不可變的型別,不能通過索引來改變他的值 呼叫字串的方法會返回乙個新的字串,並不改變原來的值...