原地不可變類型又叫可哈希(hashable)類型,原地可變類型又叫不可哈希類型。
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 #由於不可以在原地修改,所以當字符串變動後,新開辟了一個內存地址進行存放。
>>>
有序的數據類型稱為序列,支持索引、分片、加法、乘法、計算長度、比較大小操作。
比較時會依次比較每個元素的大小,如果依次比較時發現類型不相同會跳出錯誤。
下面關於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 的下載地址:請點這裡