python 08 可變和不可變型別

2021-10-02 03:31:46 字數 1145 閱讀 3985

不可變型別,記憶體中的資料不允許被修改:

可變型別,記憶體中的資料可以被修改:

a =1

a = 「hello」

a =[1, 2,3]

a =[3,2, 1]

demo_ list = [1, 2, 3]

print("定義列表後的記憶體位址%d" % id(demo_list))

demo_ list. pop(0)

demo_ list. remove(2)

demo_ list[0] = 10

print ("修改資料後的記憶體位址%d" % id(demo_list))

demo_ dict =

print ("定義字典後的記憶體位址%d" % id(demo_dict))

demo_dict["age"] = 18

demo_dict . pop( "name" )

demo_dict ["name'"] =「老王」

print("修改資料後的記憶體位址%&d" % id(demo _dict))

注意:字典的key只能使用不可變型別的資料

注意

1.可變型別的資料變化,是遇過方法來實現的

2.如果給乙個可變型別的變數,賦值了乙個新的資料,引用會修改

●變數不再對之前的資料引用

●變數改為對新賦值的資料引用

●python 中內建有乙個名字叫做hash(o) 的函式

接收乙個不可變型別的資料作為引數

返回結果是乙個整數

●雜湊是一種演算法,其作用就是提取資料的特徵碼(指紋)

相同的內容得到相同的結果

不同的內容得到不同的結果

●在python 中,設定字典的鍵值對時,會首先對key進行hash已決定如何在記憶體中儲存字典的數

據,以方便後續對字典的操作:增、刪、改、查

鍵值對的key必須是不可變型別資料

鍵值對的value可以是任意型別的資料

可變和不可變

可變和不可變 不可變 物件所指向的記憶體中的值是不可以改變 不可變型別 int ser float 元組tuple num 10s1 abc print id s1 s1 abcd print id s1 t1 2 5,6 print id t1 t1 2 5 print id t1 可變的 物件所...

python可變與不可變

可變與不可變型別的實質實際上就是儲存機制的不同 不可變型別 比如字串 被稱為不可變的字串行,每個字元底層均有規範的unicode碼對應,記憶體規定無法對單一的乙個字元進行修改,要修改字串必須重新指向乙個全新的字串 可變型別 一方面,該列表可以保證在位址不變的前提下,改變列表內容 另一方面,該引用也可...

python可變與不可變

不可變作用和意義 物件所指的記憶體中的值是可以改變的。變數名儲存的是乙個位址,該位址指向乙個具體的物件,並且不管對變數的值進行怎樣的操作,都不會改變變數名的儲存位址。字典dict 列表list 集合set 1.list list1 1 2,3 4 print list1,id list1 1,2,3...