可變和不可變類型
不可變類型
內存中的數據不允許被修改:
數字類型 int, bool, float, complex, long(2.x)
字符串 str
元組 tuple
可變類型
內存中的數據可以被修改:
列表 list
字典 dict
a = 1
a = "hello"
a = [1, 2, 3]
a = [3, 2, 1]
list = [1, 2, 3]
print("定義列表后的內存地址 %d" % id(list))
list.append(999)
list.pop(0)
list.remove(2)
list[0] = 10
print("修改數據后的內存地址 %d" % id(list))
dict = {"name": "小明"}
print("定義字典后的內存地址 %d" % id(dict))
dict["age"] = 18
dict.pop("name")
dict["name"] = "老王"
print("修改數據后的內存地址 %d" % id(dict))
注意:字典的 key 只能使用不可變類型的數據
注意
可變類型的數據變化花吟,是通過 方法 來實現的
如果給一個可變類型的變量鸠珠,賦值了一個新的數據,引用會修改
變量 不再 對之前的數據引用
變量 改為 對新賦值的數據引用
哈希 (hash)
Python 中內置有一個名字叫做 hash(o) 的函數
接收一個 不可變類型 的數據作為 參數
返回 結果是一個 整數
哈希 是一種 算法,其作用就是提取數據的 特征碼(指紋)
相同的內容 得到 相同的結果
不同的內容 得到 不同的結果
在 Python 中侵蒙,設置字典的 鍵值對 時甸昏,會首先對 key 進行 hash 已決定如何在內存中保存字典的數據刃永,以方便 后續(xù) 對字典的操作:增硬猫、刪、改对途、查
鍵值對的 key 必須是不可變類型數據
鍵值對的 value 可以是任意類型的數據