1. 程式人生 > 實用技巧 >可變資料型別和不可變資料型別

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

不可變資料型別

數字number(含int、float、bool、complex)、字串string、元組tuple。

在同一程式碼塊下,不同變數的值若是相同且是不可變資料型別,那麼它們的id也相同,實際上它們都是同一個值的引用,這既節省了記憶體又提高了執行效率。舉例:

num1=1000
num2=1000
print(id(num1),id(num2))

out:
2321267850064 2321267850064

需要注意的是,在REPL互動環境下輸出結果不一致,這是因為在REPL互動環境每行程式碼都是獨立的程式碼塊。:

>>> num1=1000
>>> num2=1000
>>> print(id(num1),id(num2))
2404872583088 2404872583472

可變資料型別

列表list、字典dict、集合set。

不同變數的值若是相同且是可變資料型別,那麼它們的id必不同,它們不能是同一個值的引用。

舉例:

>>> List1=[1,2,3]
>>> List2=[1,2,3]
>>> print(id(List1),id(List2))
2311885997568 2311885997696
>>> print(List1==List2)
True