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

2021-09-24 16:52:22 字數 1656 閱讀 4596

python中不可變資料型別的定義為:當該資料型別的對應變數的值發生了改變,那麼它對應的記憶體位址也會發生改變,就稱不可變資料型別,包括:int(整型)、string(字串)、tuple(元組)

整型首先我們來看一下整型為什麼是不可變資料型別。給乙個變數x賦值,然後改變這個x的值,輸出前後兩次的記憶體位址id和資料型別type

type():當只有乙個引數的時候,返回物件的型別。當有三個引數的時候返回乙個類物件。

# 賦值

x = 1

# 列印x的記憶體位址和資料型別

print(id(x), type(x))

# 輸出:8791164511056 # 改變x的值

x = 2

# 列印改變後的x的記憶體位址和資料型別

print(id(x), type(x))

# 輸出:8791164511088

從上面的**我們可以得出,變數x為整型,且當x的值發生改變的時候,變數的記憶體位址也發生了改變。所以整型是不可變的資料型別。

字串根據上面的例項,我們把變數x的值換成字串試試,看能不能得出字串是不可變資料型別的結論呢~

# 賦值

x = 'abcdefg'

# 列印x的記憶體位址和資料型別

print(id(x), type(x))

# 輸出:30828000 # 改變x的值

x = 'higklmn'

# 列印改變後的x的記憶體位址和資料型別

print(id(x), type(x))

# 輸出:30828168

**中當變數改變時,變數的記憶體位址由30828000 變為了30828168 。所以字串是不可變資料型別。

元組元組被稱為唯讀列表,即資料可以被查詢,但不能被修改。如果我們強行修改元組中的資料,會報錯。

t = (1, 2, 3, 4, 5)

# 修改元組的值

t[1] = 100

會報錯:typeerror: 'tuple' object does not support item assignment

python中對可變資料型別的定義為:當該資料型別的對應變數的值發生了改變,那麼它對應的記憶體位址不發生改變,就稱可變資料型別。包括:set(集合)、list(列表)、dict(字典)

集合我們先來看一下集合,定義乙個集合set1,改變set1的值,且輸出兩次的記憶體位址

set1 = 

set1.add(100)

從上面**我們可以看出,即使乙個集合發生了改變,這個集合的記憶體位址是不變的。所以集合是可變資料型別。

列表

list1 = [1, 2, 3, 4, 5]
當列表中的值發生了改變時,記憶體位址依舊不變,所以列表是可變資料型別。

字典字典是python中唯一的對映型別,採用鍵值對(key-value)的形式儲存資料。字典中的key值必須是可雜湊的資料型別,也就是整型,字串,元組等。

dict1 =
從上面**可以看出,當字典中的元素發生改變時,記憶體位址不變,都是31033960。所以字典是可變資料型別。

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

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

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(21)可變資料型別和不可變資料型別

def test num print str id num 2 num 100 print str id num 3 num 200 print str id num 1 test num print str id num 4 1698577328 1 1698577328 2 1698574128...