Python的八種資料型別

2022-04-14 08:32:04 字數 2086 閱讀 3303

python的八種資料型別

八種資料型別分別是:

number(數字)、string(字串)、boolean(布林值)、none(空值)

list(列表)、tuple(元組)、dict(字典)、set(集合)。

##  可變型別:列表,字典,集合————》 在記憶體中是以鍊錶的形式儲存,每個元素都有獨立的位址和位址指向,可以直接修改

## 不可變型別:數字,字串,元祖

# 陣列如何儲存?

# 陣列底層的儲存結構是順序儲存結構,這樣的結構有這樣一些優點:邏輯上相鄰的節點在物理位置上也是相鄰的,可以節省空間,並且可以實現隨機訪問(也稱直接訪問)。

# 建立乙個陣列時,會在記憶體中開闢一塊固定長度的區域用於直接儲存元素,擴容要考慮這塊區域的後面是否有儲存其他物件,所以陣列在定義好之後就無法擴容了。

# 而且在查詢時,是根據索引和元素儲存大小去計算位址偏移量的,如果元素型別不一致,所佔記憶體空間不相同,就不能實現隨機儲存,所以陣列不能同時儲存不同型別的資料;

## 列表如何儲存?

# 列表本質是動態的陣列,列表儲存的是每個元素在記憶體中的位址(即引用),當列表中空白佔位低於1/3時,會在記憶體中開闢一塊更大的空間,

# 並將舊列表中儲存的位址複製到新列表中,舊列表則被銷毀,這樣就實現了擴容。因為列表儲存的是元素的引用這個特性,而引用所佔的記憶體空間是相同的,

# 這樣便可以同時存放不同型別的資料了。

## python中的列表與陣列的區別在於: 陣列定義好之後就無法擴容了,而列表在定義好之後可以擴容; 陣列只能同時儲存一種型別的資料,而列表可以同時儲存不同型別的資料。

## 字典如何儲存?

# python中的字典底層是通過雜湊表(雜湊表)來實現的, 「雜湊表是根據關鍵碼值(key value)而直接進行訪問的資料結構。

# 也就是說,它通過把關鍵碼值對映到表中乙個位置來訪問記錄,以加快查詢的速度。這個對映函式叫做雜湊函式,存放記錄的陣列叫做雜湊表。」

# 字典本質也是乙個陣列,但其索引是鍵經過雜湊函式處理後得到的雜湊值,雜湊函式的目的是使鍵均勻地分布在雜湊表中,

# 並且可以在記憶體中以o(1)的時間複雜度進行定址,從而實現快速查詢和修改。雜湊表其實是乙個稀疏陣列(總是有空白元素的陣列稱為稀疏陣列),

# 雜湊表裡的單元通常叫作表元。在字典的雜湊表當中,**每個鍵值對都占用乙個表元,每個表元都有兩個部分,乙個是對鍵的引用,另乙個是對值的引用。

# **雜湊表中雜湊函式的設計困難在於將資料均勻分布在雜湊表中,從而儘量減少雜湊碰撞和衝突。

## 字典如何新增和查詢?

# **新增:**python 呼叫內部的雜湊函式,將鍵(key)作為引數進行轉換,得到乙個唯一的位址(這也就解釋了為什麼給相同的鍵賦值會直接覆蓋的原因,

# 因為相同的鍵轉換後的位址是一樣的),然後將值(value)存放到該位址中。 **查詢:**使用雜湊函式將key轉換為陣列的下標,並定位到陣列對應位置獲取value。

## 字典為什麼是無序的?

# 鍵值的雜湊碰撞,hash(key1) == hash(key2)時,向字典裡連續新增的這個兩個鍵的順序是不可以控制的,也是無法做到連續的,後來的鍵會按演算法調整到其它位置。

# 序是不可以控制的,也是無法做到連續的,後來的鍵會按演算法調整到其它位置。 字典空間擴容,當鍵的數量超過字典預設開的空間時,

# 字典會做空間擴容,擴容後的鍵順和建立順序就會發生變化,不受人為控制。

下面,我將這八種型別的相關知識,做乙個梳理。

1.number(數字型別)

PHP八種資料型別

在 php程式中,資料型別可以分成 3種 標量資料型別 復合資料型別 即將多個簡單資料型別組合在一起,儲存在乙個變數名中 和特殊資料型別。1 標量資料型別 標量資料型別包括以下幾種。1 boolean 布林型 布林變數是 php變數中最簡單的。它儲存乙個 true 或者false 值。其中 true...

PHP八種資料型別

在php程式中,資料型別可以分成3種 標量資料型別 復合資料型別 即將多個簡單資料型別組合在一起,儲存在乙個變數名中 和特殊資料型別。1 標量資料型別標量資料型別包括以下幾種。1 boolean 布林型 布林變數是php變數中最簡單的。它儲存乙個true或者false值。其中true或者false是...

面試 八種資料型別

八種資料型別 八種基本資料型別 byte short int long float double boolean char。package com.ce.test class test 列印結果 byte的大小 8 預設值 0 資料範圍 128 127 short的大小 16 預設值 0 資料範圍 ...