python的可變與不可變資料類型

來源:互聯網
上載者:User

標籤: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的可變與不可變資料類型

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.