顧名思義,數(shù)據(jù)類型就是指數(shù)據(jù)的類型,計(jì)算機(jī)不像人,能夠很好的分辨數(shù)據(jù)類型,比如,計(jì)算機(jī)就不知道這個(gè)數(shù)據(jù)到底是字符串還是數(shù)值。計(jì)算機(jī)在用這個(gè)數(shù)據(jù)進(jìn)行計(jì)算時(shí)就會(huì)出現(xiàn)問(wèn)題。
為了避免這種情況,需要對(duì)數(shù)據(jù)貼一個(gè)標(biāo)簽,這個(gè)標(biāo)簽就是類型。告訴計(jì)算機(jī)遇到這種數(shù)據(jù)應(yīng)該怎么處理。
創(chuàng)新互聯(lián)致力于成都網(wǎng)站制作、做網(wǎng)站,成都網(wǎng)站設(shè)計(jì),集團(tuán)網(wǎng)站建設(shè)等服務(wù)標(biāo)準(zhǔn)化,推過(guò)標(biāo)準(zhǔn)化降低中小企業(yè)的建站的成本,并持續(xù)提升建站的定制化服務(wù)水平進(jìn)行質(zhì)量交付,讓企業(yè)網(wǎng)站從市場(chǎng)競(jìng)爭(zhēng)中脫穎而出。 選擇創(chuàng)新互聯(lián),就選擇了安全、穩(wěn)定、美觀的網(wǎng)站建設(shè)服務(wù)!
哈希(Hash),一般翻譯做散列、雜湊。是把任意長(zhǎng)度的輸入通過(guò)散列算法變換成固定長(zhǎng)度的輸出,該輸出就是散列值。
這種轉(zhuǎn)換是一種壓縮映射,也就是散列值的空間通常遠(yuǎn)小于輸入的空間,不同的輸入可能會(huì)散列成相同的輸出,所以不可能從散列值來(lái)確定唯一的輸入值。
簡(jiǎn)單的說(shuō)就是一種將任意長(zhǎng)度的消息壓縮到某一固定長(zhǎng)度的消息摘要的函數(shù)。
在Python學(xué)習(xí)中經(jīng)常會(huì)遇到兩個(gè)概念,可哈希和不可哈希。其實(shí)可哈希就是指數(shù)據(jù)不可原地修改,而不可哈希就是指數(shù)據(jù)可原地修改。比如在Python中,字符串?dāng)?shù)據(jù)類型就是可哈希的(不可變),而列表數(shù)據(jù)類型就是不可哈希的(可變)。
描述
hash函數(shù)返回該對(duì)象的哈希值(如果它有的話)。哈希值是整數(shù)。它們?cè)谧值洳檎以貢r(shí)用來(lái)快速比較字典的鍵。
相同大小的數(shù)字變量有相同的哈希值(即使它們類型不同,如 1 和 1.0)。
整數(shù)的哈希值就是其本身。
可變的數(shù)據(jù)類型在嘗試獲取哈希值時(shí)會(huì)報(bào)錯(cuò):unhashable。
示例
print(hash(2))
print(hash(2.0))
print(hash(2.1))
print(hash('hash'))
print(hash([1, 2]))
2
2
-
Traceback (most recent call last):
File "E:\studypy\tmp.py", line 6, in
print(hash([1, 2]))
TypeError: unhashable type: 'list'
Python中比較重要且常用的數(shù)據(jù)類型有以下6種:
Python3 的6個(gè)標(biāo)準(zhǔn)數(shù)據(jù)類型中,相關(guān)屬性如下表:
數(shù)據(jù)類型 | 可哈希 | 可迭代 | 序列 |
---|---|---|---|
數(shù)字 | 可哈希 | 不可迭代 | NULL |
字符串 | 可哈希 | 可迭代 | √ |
列表 | 不可哈希 | 可迭代 | √ |
元組 | 可哈希 | 可迭代 | √ |
集合 | 不可哈希 | 可迭代 | × |
字典 | 不可哈希 | 可迭代 | × |
接下來(lái)的章節(jié),我們會(huì)對(duì)這些數(shù)據(jù)類型進(jìn)行詳細(xì)介紹。
可以使用type函數(shù)和isinstance函數(shù)來(lái)判斷某個(gè)對(duì)象的類型。
描述
type函數(shù)用來(lái)返回指定對(duì)象的類型。
示例
>>> type('1')
>>> type(1)
>>> type(1.1)
描述
isinstance函數(shù)用來(lái)返回某個(gè)對(duì)象是否是指定的對(duì)象類型。
示例
>>> isinstance(1, int)
>>> isinstance(1.1, str)
True
False