歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Python的數據類型總結

Python的數據類型總結

日期:2017/3/1 9:25:59   编辑:Linux編程

原地可變類型和不可變類型

原地不可變類型又叫可哈希(hashable)類型,原地可變類型又叫不可哈希類型。

原地不可變類型:

  • 數字類型:int, float, decimal.Decimal, fractions.Fraction, complex
  • 字符串類型:str, bytes
  • tuple
  • frozenset
  • 布爾類型:True, False
  • None

原地可變類型:

  • list
  • dict
  • set

如何實際檢驗是否原地可變

hash還是會返回原地不可變類型的hash值,如果對一個原地可變的類型調用次函數,那麼會返回TypeError。
只有可以hash的類型才可以作為dict的鍵。
只有可以hash的類型才可以放入set中,所以set本身不可以嵌套存放在set中。
舉例說明:

>>> hash(b'aaa')
6904179387427091653
>>> hash(bytearray(b'aaa'))
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: unhashable type: 'bytearray'
>>> hash(frozenset({1,2,3}))
-7699079583225461316
>>> hash({1,2,3})
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: unhashable type: 'set'

如何實際檢驗操作是否是原地變化。

內置函數id()會返回一個對象在內存中實際的存放地址。

>>> L=[1]
>>> id(L)
49689480
>>> L.append(2)
>>> id(L)
49689480    #在原地修改,所以可以看到存放地址沒有發生改變。
>>> s='aa'
>>> id(s)
47072456
>>> s+='bb'
>>> id(s)
49700008    #由於不可以在原地修改,所以當字符串變動後,新開辟了一個內存地址進行存放。
>>>

數據保存是否有序

有序的數據類型

有序的數據類型稱為序列,支持索引、分片、加法、乘法、計算長度、比較大小操作。
比較時會依次比較每個元素的大小,如果依次比較時發現類型不相同會跳出錯誤。

  • list
  • tuple
  • str
  • bytes

無序的數據類型

  • dict
  • set

下面關於Python的文章您也可能喜歡,不妨看看:

Python:在指定目錄下查找滿足條件的文件 http://www.linuxidc.com/Linux/2015-08/121283.htm

Python2.7.7源碼分析 http://www.linuxidc.com/Linux/2015-08/121168.htm

無需操作系統直接運行 Python 代碼 http://www.linuxidc.com/Linux/2015-05/117357.htm

CentOS上源碼安裝Python3.4 http://www.linuxidc.com/Linux/2015-01/111870.htm

《Python核心編程 第二版》.(Wesley J. Chun ).[高清PDF中文版] http://www.linuxidc.com/Linux/2013-06/85425.htm

《Python開發技術詳解》.( 周偉,宗傑).[高清PDF掃描版+隨書視頻+代碼] http://www.linuxidc.com/Linux/2013-11/92693.htm

Python腳本獲取Linux系統信息 http://www.linuxidc.com/Linux/2013-08/88531.htm

在Ubuntu下用Python搭建桌面算法交易研究環境 http://www.linuxidc.com/Linux/2013-11/92534.htm

Python 語言的發展簡史 http://www.linuxidc.com/Linux/2014-09/107206.htm

Python 的詳細介紹:請點這裡
Python 的下載地址:請點這裡

Copyright © Linux教程網 All Rights Reserved