可變型別與不可變型別

2022-07-31 19:33:11 字數 1486 閱讀 9627

可變型別:值發生改變時,記憶體位址不變,證明在改變原值

不可變型別:值發生改變時,記憶體位址也發生改變,即id也變,證明是沒有在改變原值,是產生新的值

1.數字型別

>>> x = 10

>>> id(x)

1830448896

>>> x = 20

>>> id(x)

1830448928

# 記憶體位址改變了,說明整型是不可變資料型別,浮點型也一樣

2.字串
>>> x = "jy"

>>> id(x)

938809263920

>>> x = "ricky"

>>> id(x)

938809264088

# 記憶體位址改變了,說明字串是不可變資料型別

3.列表
>>> list1 = ['tom','jack','egon']

>>> id(list1)

486316639176

>>> list1[2] = 'kevin'

>>> id(list1)

486316639176

>>> id(list1)

486316639176

# 對列表的值進行操作時,值改變但記憶體位址不變,所以列表是可變資料型別

4.元組
>>> t1 = ("tom","jack",[1,2])

>>> t1[0]='tom' # 報錯:typeerror

# 元組內的元素無法修改,指的是元組內索引指向的記憶體位址不能被修改

>>> t1 = ("tom","jack",[1,2])

>>> id(t1[0]),id(t1[1]),id(t1[2])

(4327403152, 4327403072, 4327422472)

>>> t1[2][0]=111 # 如果元組中存在可變型別,是可以修改,但是修改後的記憶體位址不變

>>> t1

('tom', 'jack', [111, 2])

>>> id(t1[0]),id(t1[1]),id(t1[2]) # 檢視id仍然不變

(4327403152, 4327403072, 4327422472)

5.字典
>>> dic = 

>>>

>>> id(dic)

4327423112

>>> dic['age']=19

>>> dic

>>> id(dic)

4327423112

# 對字典進行操作時,值改變的情況下,字典的id也是不變,即字典也是可變資料型別

6.資料型別總結

可變型別與不可變型別

一 什麼可變資料型別和不可變資料型別 可變資料型別 value值改變,id值不變 不可變資料型別 value值改變,id值也隨之改變。二 如何確定一種資料型別是可變的還是不可變的 根據可變資料型別與不可變資料型別的概念,只需要在改變value值的同時,使用id 函式檢視變數id值是否變化就可以知道這...

2 1 7可變型別與不可變型別

python有兩種內建的或是已經定義過的型別。不可變型別不提供變更內容的方法。比如,變數x被置為6,它沒有增長的方法。如果你需要加1,你需要建立乙個新的物件。my list 1,2,3 my list 0 4print my list 4,2,3 the same list as changedx ...

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...