超全的Python 字典(Dictionary)介紹

字典是另一種可變容器模型,且可存儲任意類型對象。

字典的每個鍵值 key=>value 對用冒號 : 分割,每個鍵值對之間用逗號 , 分割,整個字典包括在花括號 {} 中 ,格式如下所示:

超全的Python 字典(Dictionary)介紹

鍵一般是唯一的,如果重複最後的一個鍵值對會替換前面的,值不需要唯一。

超全的Python 字典(Dictionary)介紹

值可以取任何數據類型,但鍵必須是不可變的,如字符串,數字或元組。

一個簡單的字典實例:

超全的Python 字典(Dictionary)介紹

也可如此創建字典:

超全的Python 字典(Dictionary)介紹

訪問字典裡的值

把相應的鍵放入熟悉的方括弧,如下實例:

超全的Python 字典(Dictionary)介紹

以上實例輸出結果:

<code>dict['Name']:  Zara
dict['Age']: 7/<code>

如果用字典裡沒有的鍵訪問數據,會輸出錯誤如下:

超全的Python 字典(Dictionary)介紹

以上實例輸出結果:

<code>dict['Alice']: 
Traceback (most recent call last):
File "test.py", line 5, in <module>
print "dict['Alice']: ", dict['Alice']
KeyError: 'Alice'/<module>/<code>

修改字典

向字典添加新內容的方法是增加新的鍵/值對,修改或刪除已有鍵/值對如下實例:

超全的Python 字典(Dictionary)介紹

以上實例輸出結果:

<code>dict['Age']:  8
dict['School']: RUNOOB/<code>

刪除字典元素

能刪單一的元素也能清空字典,清空只需一項操作。

顯示刪除一個字典用del命令,如下實例:

超全的Python 字典(Dictionary)介紹

但這會引發一個異常,因為用del後字典不再存在:

<code>dict['Age']:
Traceback (most recent call last):

File "test.py", line 8, in <module>
print "dict['Age']: ", dict['Age']
TypeError: 'type' object is unsubscriptable/<module>/<code>

注:del()方法後面也會討論。

字典鍵的特性

字典值可以沒有限制地取任何python對象,既可以是標準的對象,也可以是用戶定義的,但鍵不行。

兩個重要的點需要記住:

1)不允許同一個鍵出現兩次。創建時如果同一個鍵被賦值兩次,後一個值會被記住,如下實例:

超全的Python 字典(Dictionary)介紹

以上實例輸出結果:

<code>dict['Name']:  Manni/<code>

2)鍵必須不可變,所以可以用數字,字符串或元組充當,所以用列表就不行,如下實例:

超全的Python 字典(Dictionary)介紹

以上實例輸出結果:

<code>Traceback (most recent call last):
File "test.py", line 3, in <module>
dict = {['Name']: 'Zara', 'Age': 7}
TypeError: list objects are unhashable/<module>/<code>

字典內置函數&方法

Python字典包含了以下內置函數:

超全的Python 字典(Dictionary)介紹

Python字典包含了以下內置函數語法及實例介紹

1.cmp(dict1, dict2)

描述

Python 字典的 cmp() 函數用於比較兩個字典元素。

語法

cmp()方法語法:

<code>cmp(dict1, dict2)/<code>

參數

  • dict1 -- 比較的字典。
  • dict2 -- 比較的字典。

返回值

如果兩個字典的元素相同返回0,如果字典dict1大於字典dict2返回1,如果字典dict1小於字典dict2返回-1。

實例

以下實例展示了 cmp()函數的使用方法:

超全的Python 字典(Dictionary)介紹

2.len(dict)

描述

Python 字典(Dictionary) len() 函數計算字典元素個數,即鍵的總數。

語法

len()方法語法:

<code>len(dict)

/<code>

參數

  • dict -- 要計算元素個數的字典。

返回值

返回字典的元素個數。

實例

以下實例展示了 len()函數的使用方法:

<code>#!/usr/bin/python

dict = {'Name': 'Zara', 'Age': 7};
print "Length : %d" % len (dict)

/<code>

以上實例輸出結果為:

<code>Length : 2/<code>

3.str(dict)

描述

Python 字典(Dictionary) str() 函數將值轉化為適於人閱讀的形式,以可打印的字符串表示。

語法

str()方法語法:

<code>str(dict)/<code>

參數

  • dict -- 字典。

返回值

返回字符串。

實例

以下實例展示了 str()函數的使用方法:

<code>#!/usr/bin/python

dict = {'Name': 'Zara', 'Age': 7};
print "Equivalent String : %s" % str (dict)/<code>

以上實例輸出結果為:

<code>Equivalent String : {'Age': 7, 'Name': 'Zara'}/<code>

4.type(dict)

描述

Python 字典(Dictionary) type() 函數返回輸入的變量類型,如果變量是字典就返回字典類型。

語法

type()方法語法:

<code>type(dict)/<code>

參數

  • dict -- 字典。

返回值

返回輸入的變量類型。

實例

以下實例展示了 type()函數的使用方法:

<code>#!/usr/bin/python

dict = {'Name': 'Zara', 'Age': 7};
print "Variable Type : %s" % type (dict)/<code>

以上實例輸出結果為:

<code>Variable Type : <type>/<code>

Python字典包含了以下內置方法:

超全的Python 字典(Dictionary)介紹

Python字典包含了以下內置語法及實例:

1.Python 字典(Dictionary) clear()方法

描述

Python 字典(Dictionary) clear() 函數用於刪除字典內所有元素。

語法

clear()方法語法:

<code>dict.clear()/<code>

參數

  • NA。

返回值

該函數沒有任何返回值。

實例

以下實例展示了 clear()函數的使用方法:

<code>#!/usr/bin/python

dict = {'Name': 'Zara', 'Age': 7};

print "Start Len : %d" % len(dict)
dict.clear()
print "End Len : %d" % len(dict)/<code>

以上實例輸出結果為:

<code>Start Len : 2
End Len : 0/<code>

2.Python 字典(Dictionary) copy()方法

描述

Python 字典(Dictionary) copy() 函數返回一個字典的淺複製。

語法

copy()方法語法:

<code>dict.copy()/<code>

參數

  • NA。

返回值

返回一個字典的淺複製。

實例

以下實例展示了 copy()函數的使用方法:

超全的Python 字典(Dictionary)介紹

以上實例輸出結果為:

<code>New Dictinary : {'Age': 7, 'Name': 'Zara'}/<code>

直接賦值和 copy 的區別

可以通過以下實例說明:

超全的Python 字典(Dictionary)介紹

實例中 dict2 其實是 dict1 的引用(別名),所以輸出結果都是一致的,dict3 父對象進行了深拷貝,不會隨dict1 修改而修改,子對象是淺拷貝所以隨 dict1 的修改而修改。

<code>{'num': [2, 3], 'user': 'root'}
{'num': [2, 3], 'user': 'root'}
{'num': [2, 3], 'user': 'runoob'}/<code>

3.Python 字典(Dictionary) fromkeys()方法

描述

Python 字典 fromkeys() 函數用於創建一個新字典,以序列 seq 中元素做字典的鍵,value 為字典所有鍵對應的初始值。

語法

fromkeys()方法語法:

<code>dict.fromkeys(seq[, value])/<code>

參數

  • seq -- 字典鍵值列表。
  • value -- 可選參數, 設置鍵序列(seq)的值。

返回值

該方法返回一個新字典。

實例

以下實例展示了 fromkeys()函數的使用方法:

超全的Python 字典(Dictionary)介紹

4.Python 字典(Dictionary) get()方法

描述

Python 字典(Dictionary) get() 函數返回指定鍵的值,如果值不在字典中返回默認值。

語法

get()方法語法:

<code>dict.get(key, default=None)/<code>

參數

  • key -- 字典中要查找的鍵。
  • default -- 如果指定鍵的值不存在時,返回該默認值。

返回值

返回指定鍵的值,如果值不在字典中返回默認值None。

實例

以下實例展示了 get()函數的使用方法:

<code>#!/usr/bin/python

dict = {'Name': 'Zara', 'Age': 27}

print "Value : %s" % dict.get('Age')
print "Value : %s" % dict.get('Sex', "Never")/<code>

以上實例輸出結果為:

<code>Value : 27
Value : Never/<code>

5.Python 字典(Dictionary) has_key()方法

描述

Python 字典(Dictionary) has_key() 函數用於判斷鍵是否存在於字典中,如果鍵在字典dict裡返回true,否則返回false。

語法

has_key()方法語法:

<code>dict.has_key(key)/<code>

參數

  • key -- 要在字典中查找的鍵。

返回值

如果鍵在字典裡返回true,否則返回false。

實例

以下實例展示了 has_key()函數的使用方法:

<code>#!/usr/bin/python

dict = {'Name': 'Zara', 'Age': 7}

print "Value : %s" % dict.has_key('Age')
print "Value : %s" % dict.has_key('Sex')/<code>

以上實例輸出結果為:

<code>Value : True
Value : False/<code>

6.Python 字典(Dictionary) items()方法

描述

Python 字典(Dictionary) items() 函數以列表返回可遍歷的(鍵, 值) 元組數組。

語法

items()方法語法:

<code>dict.items()/<code>

參數

  • NA。

返回值

返回可遍歷的(鍵, 值) 元組數組。

實例

以下實例展示了 items()函數的使用方法:

超全的Python 字典(Dictionary)介紹

7.Python 字典(Dictionary) keys()方法

描述

Python 字典(Dictionary) keys() 函數以列表返回一個字典所有的鍵。

語法

keys()方法語法:

<code>dict.keys()/<code>

參數

  • NA。

返回值

返回一個字典所有的鍵。

實例

以下實例展示了 keys()函數的使用方法:

<code>#!/usr/bin/python

dict = {'Name': 'Zara', 'Age': 7}

print "Value : %s" % dict.keys()/<code>

以上實例輸出結果為:

<code>Value : ['Age', 'Name']/<code>

8.Python 字典(Dictionary) setdefault()方法

描述

Python 字典 setdefault() 函數和 get()方法 類似, 如果鍵不存在於字典中,將會添加鍵並將值設為默認值。

語法

setdefault() 方法語法:

<code>dict.setdefault(key, default=None)/<code>

參數

  • key -- 查找的鍵值。
  • default -- 鍵不存在時,設置的默認鍵值。

返回值

如果字典中包含有給定鍵,則返回該鍵對應的值,否則返回為該鍵設置的值。

實例

以下實例展示了 setdefault() 函數的使用方法:

超全的Python 字典(Dictionary)介紹

9.Python 字典(Dictionary) update()方法

描述

Python 字典(Dictionary) update() 函數把字典dict2的鍵/值對更新到dict裡。

語法

update()方法語法:

<code>dict.update(dict2)/<code>

參數

  • dict2 -- 添加到指定字典dict裡的字典。

返回值

該方法沒有任何返回值。

實例

以下實例展示了 update()函數的使用方法:

<code>#!/usr/bin/python

dict = {'Name': 'Zara', 'Age': 7}
dict2 = {'Sex': 'female' }

dict.update(dict2)
print "Value : %s" % dict/<code>

以上實例輸出結果為:

<code>Value : {'Age': 7, 'Name': 'Zara', 'Sex': 'female'}/<code>

10.Python 字典(Dictionary) values()方法

描述

Python 字典(Dictionary) values() 函數以列表返回字典中的所有值。

語法

values()方法語法:

<code>dict.values()/<code>

參數

  • NA。

返回值

返回字典中的所有值。

實例

以下實例展示了 values()函數的使用方法:

<code>#!/usr/bin/python

dict = {'Name': 'Zara', 'Age': 7}

print "Value : %s" % dict.values()/<code>

以上實例輸出結果為:

<code>Value : [7, 'Zara']/<code>

11.Python 字典 pop() 方法

描述

Python 字典 pop() 方法刪除字典給定鍵 key 及對應的值,返回值為被刪除的值。key 值必須給出。 否則,返回 default 值。

語法

pop()方法語法:

<code>pop(key[,default])/<code>

參數

  • key: 要刪除的鍵值
  • default: 如果沒有 key,返回 default 值

返回值

返回被刪除的值。

實例

以下實例展示了 pop() 方法的使用方法:

超全的Python 字典(Dictionary)介紹

12.Python 字典 popitem() 方法

描述

Python 字典 popitem() 方法返回並刪除字典中的最後一對鍵和值。

如果字典已經為空,卻調用了此方法,就報出 KeyError 異常。

語法

popitem()方法語法:

<code>popitem()/<code>

參數

返回值

返回一個鍵值對(key,value)形式。

實例

以下實例展示了 popitem() 方法的使用方法:

超全的Python 字典(Dictionary)介紹


分享到:


相關文章: