標籤:highlight har 數值 變數 def code 因此 div 列表
背景:
探尋python的資料類型是否可變,也可以更好的理解python對記憶體的使用方式。
可變與不可變定義
可變資料類型:在python中定義一個變數,當變數值被修改後,記憶體位址未變更(對象未變更),則將該資料定義為可變資料類型。
可不變資料類型:當變數數值被修改後,變數的記憶體位址發生變更(建立了新對象),則認為是不可變資料類型。
針對python資料類型進行測試:
數字:
>>> a = 111>>> id(a)1549733776>>> a = 222>>> id(a)1549737328
結論:數字類型的變數值變更後記憶體位址發生改變
字串:
>>> a = "abcdefg">>> id(a)2363386268560>>> a = "abcdefgggggg">>> id(a)2363386295024
結論:字串類型的變數值變更後記憶體位址發生改變
元組:
>>> a = (‘aa‘,‘bb‘,‘cc‘)>>> id(a)2363384788456>>> a = (‘aa‘,‘bb‘,‘dd‘)>>> id(a)2363384789896
結論:元群組類型的變數值改變後記憶體位址發生變化
列表:
>>> a = [‘aa‘,‘bb‘,‘cc‘]>>> id(a)2363386243016>>> a[0] = 11>>> a[11, ‘bb‘, ‘cc‘]>>> id(a)2363386243016
結論:清單類型的變數值發生變化後記憶體位址未變更
字典
>>> a = {‘name‘:‘zhangsan‘,‘age‘:‘33‘}>>> id(a)2363384325384>>> a[‘name‘] = ‘lisi‘>>> a{‘name‘: ‘lisi‘, ‘age‘: ‘33‘}>>> id(a)2363384325384
結論:字典類型的變數值發生變化後記憶體位址未變更
匯總:當變數值為數字,字串,元組資料類型時,數值發生變化後記憶體位址變更,以為著建立了一個新對象。因此不可變資料類型為:數字,字串,元組。
當變數值為列表,字典資料類型時,數值發生變化後記憶體位址未變更,以為著變更後依然是在同一個對象,因此可變資料類型為:列表,字典。
python的可變與不可變資料類型