字典是另外一種可變容器模型無序的,且可存儲任意類型對象
字典首先是鍵值對形式
key : value
使用{}表示python
鍵必須是惟一的,但值則沒必要惟一。ide
值能夠取任何數據類型,但鍵必須是不可變的類型。spa
不可變類型:數字、字符串、元組;code
可變類型:列表、字典。對象
字典中鍵值是無序的。blog
1.建立字典排序
>>> dic1 = {'k1':'v1' } >>> dic1 {'k1': 'v1'}
2.訪問字典
dic[key] 形式返回鍵key對應的值value,若是key不在字典中會引起一個KeyError。element
>>> dic1['k1'] 'v1' >>> dic1['k2'] Traceback (most recent call last): File "<stdin>", line 1, in <module> KeyError: 'k2'
3.判斷key是否在字典中rem
>>> 'k1' in dic1 True >>> 'k2' in dic1 False
有返回True,無返回False字符串
4.更新字典 update方法
>>> dic2 = {'k2':'v2'} >>> dic1.update(dic2) >>> dic1 {'k2': 'v2', 'k1': 'v1'}
5.刪除操做
刪除一個鍵對
>>> del dic1['k1'] >>> dic1 {'k2': 'v2'}
刪除整個字典
>>> del dic1 >>> dic1 Traceback (most recent call last): File "<stdin>", line 1, in <module> NameError: name 'dic1' is not defined
清空字典
>>> dic1 = {'k1':'v1' } >>> dic1.clear() >>> dic1 {}
刪除一個鍵,並返回改鍵對應的值
>>> dic1 {'k2': 'v2', 'k1': 'v1'} >>> dic1.pop('k2') 'v2' >>> dic1 {'k1': 'v1'}
6.字典排序
按照鍵排序
>>> dic3 = {11:'abc','bcd':'kkk','ttt':'aaa',99:33} >>> dic3 {'bcd': 'kkk', 99: 33, 11: 'abc', 'ttt': 'aaa'} >>> sorted(dic3) [11, 99, 'bcd', 'ttt']
按照鍵對進行排序
>>> dic3 = {11:'abc','bcd':'kkk','ttt':'aaa',99:33} >>> dic3 {'bcd': 'kkk', 99: 33, 11: 'abc', 'ttt': 'aaa'} >>> sorted(dic3.items()) [(11, 'abc'), (99, 33), ('bcd', 'kkk'), ('ttt', 'aaa')]
7.遍歷字典
遍歷鍵
>>> for i in dic3.keys(): ... print i ... bcd 99 11 ttt
遍歷值
>>> for i in dic3.values(): ... print i ... kkk 33 abc aaa
遍歷鍵值
>>> for i in dic3.items(): ... print i ... ('bcd', 'kkk') (99, 33) (11, 'abc') ('ttt', 'aaa')
注意使用字典的時候:
一、不能容許一鍵對應多個值;
二、鍵必須是可哈希的。
一、dict.keys() 返回一個包含字典全部KEY的列表; 二、dict.values() 返回一個包含字典全部value的列表; 三、dict.items() 返回一個包含全部(鍵,值)元祖的列表; 四、dict.clear() 刪除字典中的全部項或元素; 五、dict.copy() 返回一個字典淺拷貝的副本; 六、dict.fromkeys(seq, val=None) 建立並返回一個新字典,以seq中的元素作該字典的鍵,val作該字典中全部鍵對應的初始值(默認爲None); 七、dict.get(key, default = None) 返回字典中key對應的值,若key不存在字典中,則返回default的值(default默認爲None); 八、dict.has_key(key) 若是key在字典中,返回True,不然返回False。 如今用 in 、 not in; 九、dict.iteritems()、adict.iterkeys()、adict.itervalues() 與它們對應的非迭代方法同樣,不一樣的是它們返回一個迭代子,而不是一個列表; 十、dict.pop(key[,default]) 和get方法類似。若是字典中存在key,刪除並返回key對應的vuale;若是key不存在,且沒有給出default的值,則引起keyerror異常; 十一、dict.setdefault(key, default=None) 和set()方法類似,但若是字典中不存在Key鍵,由 adict[key] = default 爲它賦值; 十二、dict.update(bdict) 將字典bdict的鍵值對添加到字典adict中。