Python中的可變資料型別和不可變資料型別

2021-09-22 16:31:55 字數 1301 閱讀 1172

python的基本資料型別大致可分為6類:1.number(數字) 2. string(字串) 3. tuple (元組) 4. list(列表) 5. dictionary (字典) 6. sets(集合) (bool布林型別、int整型、float浮點型、complex複數等都歸為number數字型別)

這6種型別又可以分為可變型別和不可變型別,其中不可變型別有:number(數字)  string(字串) tuple (元組)。可變型別有: list(列表) dictionary (字典) sets(集合)。

不可變資料型別:不可變資料型別的變數在第一次賦值宣告(由於是解釋型語言,python中宣告和定義是分不開的,即出現給變數賦值就會分配其相應的記憶體空間。)的時候, 會在記憶體中開闢一塊空間, 用來存放這個變數被賦的值, 存放這個值的記憶體空間就是記憶體中的乙個位址, 而這個變數實際上儲存的, 並不是被賦予的這個值, 而是存放這個值所在空間的記憶體位址, 通過這個位址, 變數就可以在記憶體中取出資料了。 所謂不可變就是說, 我們不能改變這個資料在記憶體中的值, 所以當我們改變這個變數的賦值時, 只是在記憶體中重新開闢了一塊空間, 將這一條新的資料存放在這乙個新的記憶體位址裡, 而原來的那個變數就不在引用原資料的記憶體位址而轉為引用新資料的記憶體位址了。

(>>> a=5

>>> id(a)

140708493550352

>>> a=7

>>> id(a)

140708493550416

>>> id(5)

140708493550352

也就是說a=5的時候,首先開闢了乙個記憶體把5放進去,a只是相當於這個記憶體中的引用而已,而即使a=7之後,我們依然可以發現放5的記憶體仍然在。當然,重新執行程式的話,id(5)不一定會是同樣的值。

)(例如:

>>> a = [1, 2, 3]

>>> id(a)

41568816

>>> a = [1, 2, 3]

>>> id(a)

41575088

>>> id(a)

41575088

>>> a += [2]

>>> id(a)

41575088

>>> a

[1, 2, 3, 4, 2]

不過我們也可以發現

>>> id([1,2,3])

2862503824648

>>> id([1,2,3])

2862506945224

也就是說兩次[1,2,3]用的不是同乙個記憶體裡面的[1,2,3]了,即存放前乙個[1,2,3]的記憶體已經被**

python 可變資料型別和不可變資料型別

不可變資料型別更改後位址發生變化,可變資料型別更改後位址不發生變化。看 說話 a 1 int b string string c 1,2 tuple print type a id a print type b id b print type c id c a 1b 1 c 3 4 print a,...

Python 可變資料型別和不可變資料型別

python的資料儲存在記憶體裡,該資料分為可變資料型別和不可變資料型別 不可變資料型別 字串,數字,元祖 可變資料型別 列表,字典,集合 nums 1 2,3 nums bk nums nums 0 0print nums nums print nums bk nums bk print form...

python 可變資料型別 不可變資料型別

在python中,資料型別分為可變資料型別和不可變資料型別,不可變資料型別包括string,int,float,tuple,可變資料型別包括list,dict。所謂的可變與不可變,舉例如下 a test print a 0 t a 0 1 traceback most recent call las...