字典是另一種可變容器模型,且可存儲任意類型對象。
字典的每個鍵值 key=>value 對用冒號 : 分割,每個鍵值對之間用逗號 , 分割,整個字典包括在花括號 {} 中 ,格式如下所示:
鍵一般是唯一的,如果重複最後的一個鍵值對會替換前面的,值不需要唯一。
值可以取任何數據類型,但鍵必須是不可變的,如字符串,數字或元組。
一個簡單的字典實例:
也可如此創建字典:
訪問字典裡的值
把相應的鍵放入熟悉的方括弧,如下實例:
以上實例輸出結果:
<code>dict['Name']: Zara
dict['Age']: 7/<code>
如果用字典裡沒有的鍵訪問數據,會輸出錯誤如下:
以上實例輸出結果:
<code>dict['Alice']:
Traceback (most recent call last):
File "test.py", line 5, in <module>
print "dict['Alice']: ", dict['Alice']
KeyError: 'Alice'/<module>/<code>
修改字典
向字典添加新內容的方法是增加新的鍵/值對,修改或刪除已有鍵/值對如下實例:
以上實例輸出結果:
<code>dict['Age']: 8
dict['School']: RUNOOB/<code>
刪除字典元素
能刪單一的元素也能清空字典,清空只需一項操作。
顯示刪除一個字典用del命令,如下實例:
但這會引發一個異常,因為用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)不允許同一個鍵出現兩次。創建時如果同一個鍵被賦值兩次,後一個值會被記住,如下實例:
以上實例輸出結果:
<code>dict['Name']: Manni/<code>
2)鍵必須不可變,所以可以用數字,字符串或元組充當,所以用列表就不行,如下實例:
以上實例輸出結果:
<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字典包含了以下內置函數語法及實例介紹
1.cmp(dict1, dict2)
描述
Python 字典的 cmp() 函數用於比較兩個字典元素。
語法
cmp()方法語法:
<code>cmp(dict1, dict2)/<code>
參數
- dict1 -- 比較的字典。
- dict2 -- 比較的字典。
返回值
如果兩個字典的元素相同返回0,如果字典dict1大於字典dict2返回1,如果字典dict1小於字典dict2返回-1。
實例
以下實例展示了 cmp()函數的使用方法:
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字典包含了以下內置語法及實例:
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()函數的使用方法:
以上實例輸出結果為:
<code>New Dictinary : {'Age': 7, 'Name': 'Zara'}/<code>
直接賦值和 copy 的區別
可以通過以下實例說明:
實例中 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()函數的使用方法:
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()函數的使用方法:
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() 函數的使用方法:
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() 方法的使用方法:
12.Python 字典 popitem() 方法
描述
Python 字典 popitem() 方法返回並刪除字典中的最後一對鍵和值。
如果字典已經為空,卻調用了此方法,就報出 KeyError 異常。
語法
popitem()方法語法:
<code>popitem()/<code>
參數
- 無
返回值
返回一個鍵值對(key,value)形式。
實例
以下實例展示了 popitem() 方法的使用方法:
閱讀更多 會飛的魚go 的文章