Python基本資料型別 字典

2022-03-02 14:33:03 字數 3297 閱讀 9813

字典是python的另一種有序的可變資料結構,且可儲存任意型別物件。

字典是一種鍵值對的資料容器,每個鍵值(key:value)對用冒號(:)分割,每個對之間用逗號(,)分割,整個字典包括在花括號「{}」中。鍵和值兩者一一對應,與表不同的是,詞典的元素沒有順序,不能通過下標引用元素。字典是通過鍵來引用。

字典中的鍵必須是唯一的同時不可變的,值則沒有限制。

建立 dict

>>> dict1 = 

>>> dict1

字典中的鍵必須是唯一的,型別是不可變型別。因此,也可以通過如下方式建立

>>> dict1 =  

>>> dict1

甚至:

>>> t = (1,2,3) # 元組是不可變的型別,可以作為鍵

>>> dict1 =

>>> dict1

由於乙個key只能對應乙個value,多次對乙個key放入value,後面的值會把前面的值覆蓋掉:

>>> dict1['key4'] = 'value4'

>>> dict1

把資料放入dict的方法,除了初始化時指定外,還可以通過key放入:

>>> dict1['key4'] = 'value4' 

>>> dict1

要避免key不存在的錯誤,有兩種辦法:

# 一是通過in判斷key是否存在:

>>> 'value4' in dict1

false

# 二是通過dict提供的get方法,如果key不存在,可以返回none,或者自己指定的value:

>>> dict1 =

>>> dict1

>>> dict1['key5'] = dict1.get('value5','value5')

>>> dict1

>>>

注意:返回none的時候python的互動式命令列不顯示結果。

dict函式快速構造字典:

>>> zip(["a","b","c"],[4,5,6])

[('a', 4), ('b', 5), ('c', 6)]

>>> dict(zip(["a","b","c"],[4,5,6]))

>>> dict(name="lans",age="22")

>>>

請務必注意,dict內部存放的順序和key放入的順序是沒有關係的。

和list比較,dict有以下幾個特點:

查詢和插入的速度極快,不會隨著key的增加而增加;

需要占用大量的記憶體,記憶體浪費多。

而list相反:

查詢和插入的時間隨著元素的增加而增加;

占用空間小,浪費記憶體很少。

所以,dict是用空間來換取時間的一種方法。

dict可以用在需要高速查詢的很多地方,在python**中幾乎無處不在,正確使用dict非常重要,需要牢記的第一條就是dict的key必須是不可變物件。

這是因為dict根據key來計算value的儲存位置,如果每次計算相同的key得出的結果不同,那dict內部就完全混亂了。這個通過key計算位置的演算法稱為雜湊演算法(hash)。

要保證hash的正確性,作為key的物件就不能變。在python中,字串、整數等都是不可變的,因此,可以放心地作為key。而list是可變的,就不能作為key:

>>> key = [1, 2, 3]

>>> d[key] = 'a list'

traceback (most recent call last):

file "", line 1, in typeerror: unhashable type: 'list'

訪問 dict 中的元素

dict在建立時就指定了key:value的關係,程式可以通過key來訪問對應的元素。

>>> dict1 = 

>>> dict1['key1']

'value1'

字典中的常見的方法:

例:

>>> dict1.clear()

>>> dict1

{}

例如:新增乙個元素「a」,返回其在列表中個數

>>> d1 = 

>>> d2 = d1.copy()

# 用id()函式可以看出值是同乙個物件

>>> id(d1[2])

140415073723656

>>> id(d2[2])

140415073723656

>>>

# 但兩個字典本身不是同乙個物件

>>> id(d2)

140415072754216

>>> id(d1)

140415072754776

# 修改d2中的乙個值,d1中的將不會被改變,此時d1[1]和d2[1]已經不是同乙個物件了。

>>> d2[1]="a"

>>> d2

>>> d1

例如:

>>> d1 = 

>>> d1.has_key(1)

true

>>> d1.has_key(4)

false

例如:

>>> d1.items()

[(1, 'a'), (2, 'b'), (3, 'c')]

例如:

>>> d1.keys()

[1, 2, 3]

例如:

>>> d1.values()

['a', 'b', 'c']

例如:

>>> d1 =                 

>>> d2 =

>>> d1.update(d2)

>>> d1

例如:

>>> d1.pop(1)

'a'>>> d1

>>> d1.pop(3)

'c'>>> d1

例如:

>>> dict = dict.fromkeys(seq)

>>> dict

基本資料型別 字典

字典 dict 是python中唯 的 個對映型別.他是以括起來的鍵值對組成.在dict中key是 唯 一的.在儲存的時候,根據key來計算出 乙個記憶體位址.然後將key value儲存在這個位址中.這種演算法被稱為hash演算法,所以,切記,在dict中儲存的key value中的key 必須是...

Python基本資料型別之字典

1.什麼是字典 2.字典的定義和初始化d dict 定義字典 d d print d 輸出 d dict a 1,b 2 print d 輸出 d dict a 1 b 2 print d 輸出 d dict.fromkeys range 5 hello print d 輸出 3.字典的訪問d d....

Python基本資料型別之字典

1.什麼是字典 2.字典的定義和初始化d dict 定義字典 d d print d 輸出 d dict a 1,b 2 print d 輸出 d dict a 1 b 2 print d 輸出 d dict.fromkeys range 5 hello print d 輸出 3.字典的訪問d d....