Python的資料型別總結

黄舟
發布: 2016-12-16 16:40:32
原創
1436 人瀏覽過

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

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

原地不可變類型:

數字類型:int, float, decimal.Decimal, fractions.Fraction, complex

字串類型:str, bytes
set

True, False


None


原地可變類型:

list

dict

set


,如果對一個原地可變的型別呼叫次函數,那麼就會傳回TypeError。

只有可以hash的型別才可以當dict的鍵。

只有可以hash的類型才可以放入set中,所以set本身不可以巢狀存放在set中。
舉例說明:

>>> hash(b'aaa')

6904179387427091653

>>> hash(bytearray(b'aaa'))

Traceback (most recents call last):🎬> 1, in

TypeError: unhashable type: 'bytearray'
>>> hash(frozenset({1,2,3}))
-7699079583225461316
>> Traceback (most recent call last):

 File "", line 1, in

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  >>>> id(s)
49700008  >變動後,新開闢了一個記憶體位址進行存放。
>>>


資料保存是否有序

有序的資料類型

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

list

tuple

str


bytes


無序的資料型

dic (www.php.cn)! 


相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板