Python中的字典介紹


一、什么是字典?
字典是python語言中唯一的映射類型
映射類型對象里哈希值(鍵,key)和指向的對象(值,value)是一對多的廣西,通常被認為是可變的哈希表
字典對象是可變的,它是一個容器類型,能存儲任意個數的python對象,其中也包括其他容器類型。
字典類型與序列類型的區別:
1、存取和訪問數據的方式不同
2、序列類型只用數字類型的鍵
3、映射類型可以用其他對象類型作為鍵
4、映射類型中的數據是無序排列的
5、映射類型用鍵直接"映射"到值
 
二、如何創建字典和給字典賦值
簡單地說字典就是用大括號包裹的鍵值對的集合
>>> d1 = {'x':1,3:'xz','z':[1,2,3,4]}  
>>> print d1
{'x': 1, 3: 'xz', 'z': [1, 2, 3, 4]}
 
三、字典的基本操作
1、如何訪問字典中的值
>>> print d1['z']
[1, 2, 3, 4]
 
2、如何檢查key是否在字典中
方法
>>> d1.has_key('z')        //使用has_key()函數來判斷鍵'z'是否存在於字典中
True
 
in 、ont in
>>> 'z' in d1
True
 
3、如何更新字典
a.添加一個新元素或鍵值對
>>> d1['test'] = 'hello,world!!!!'    //隨機網字典里面添加了一對鍵值
>>> print d1
{'test': 'hello,world!!!!', 'x': 1, 3: 'xz', 'z': [1, 2, 3, 4]}
 
b.更新一個元素或鍵值對
>>> d1['x'] = 'love beijing'        //通過重新定義舊的鍵值,起到修改作用    
>>> print d1
{'test': 'hello,world!!!!', 'x': 'love beijing', 3: 'xz', 'z': [1, 2, 3, 4]}
 
c.刪除一個元素或鍵值對
>>> del d1[3]        //通過del函數進行刪除相應的key-value
>>> print d1
{'test': 'hello,world!!!!', 'x': 'love beijing', 'z': [1, 2, 3, 4]}
 
>>> d1.pop('test')        //通過pop()方法彈出一對key-value
'hello,world!!!!'
>>> print d1
{'x': 'love beijing', 'z': [1, 2, 3, 4]}
 
四、字典的方法
1、adict.keys()返回一個保護字典所有key的列表
>>> adict = {3:'3','x':35,'y':[1,2,3,4],'v':'test'}
>>> adict.keys()        //通過keys()方法獲取字典里面所有的鍵值
['y', 'x', 3, 'v']
 
2、adict.values()返回一個包含字典所有value的列表
>>> adict.values()
[[1, 2, 3, 4], 35, '3', 'test']
 
3、adict.items()返回一個包含所有元組的列表
>>> print adict
{'y': [1, 2, 3, 4], 'x': 35, 3: '3', 'v': 'test'}
>>> adict.items()                                                //通過items方法將字典轉變成元組
[('y', [1, 2, 3, 4]), ('x', 35), (3, '3'), ('v', 'test')]
 
4、adict.clear()刪除字典中的所有項或元素
>>> d6 = {1:3,3:'z','b':78}
>>> print d6
{1: 3, 3: 'z', 'b': 78}    
>>> d6.clear()            //利用clear()函數清空整個字典
>>> print d6
{}
 
5、adict.copy()返回一個字段淺拷貝的副本
>>> d7 = adict.copy()                //利用copy()函數復制了一個字典,並且不隨原始字典的變化而變化
>>> print d7
{'y': [1, 2, 3, 4], 'x': 35, 3: '3', 'v': 'test'}
>>> adict['test'] = 'uuuuuu'
>>> print d7
{'y': [1, 2, 3, 4], 'x': 35, 3: '3', 'v': 'test'}
 
6、adict.fromkeys(seq,val=None)創建並返回一個新字典,以seq中的元素做該字段的鍵,val做該字典中所有鍵對應的初始值
 
7、adict.get(key,default = None)返回字典中key對應的值,若key不存在字典中,則返回default的值(默認為None)
>>> adict.get('test')        //通過get()方法返回對應的value值
'uuuuuu
 
8、adict.has_keys(key)如果key在字典中,返回True,否則返回False
>>> adict.has_key('3')        //通過has_key()方法查看字典中是否有相應的值,有則為真,無則為假
False
>>> adict.has_key('v')
True
 
9、adict.iteritems()、adict.iterkeys()、adict.itervalues()與它們對應的非迭代方法一樣
 
10、adict.pop(key)和get方法相似,如果字典中存在key,刪除並返回key對應的value
 
11、adict.setdefalut(key,defalut=None)與set()方法相似,但如果字典中不存在key鍵,由adict[key] = default為它賦值
>>> print adict['vdddd']
tset
>>> adict.setdefault('vdddd','tsetdddd')        //如果值存在,則不進行賦值,不存在則賦值
'tset'
>>> print adict['vdddd']
tset
 
12、adict.update(bdict)將字典bdict的鍵值對添加到字典adict中
 
五、字典的遍歷
1、遍歷字典的key(鍵)
>>> for i in adict.keys():    //通過for循環,並且keys()方法統計字典中的鍵,進行遍歷
...    print i
...  
3
test
vdddd
v
y
x
 
2、遍歷字段的value(值)
>>> for i in adict.values():
...    print i
...  
3
uuuuuu
tset
test
[1, 2, 3, 4]
35
 
3、遍歷字段的項
>>> for i in adict.items():        //通過items()方法將字典轉為元組的列表,再進行遍歷
...    print i
...  
(3, '3')
('test', 'uuuuuu')
('vdddd', 'tset')
('v', 'test')
('y', [1, 2, 3, 4])
('x', 35)
 
4、遍歷字典的key-value
>>> for key,value in adict.items():    //也是一個經典的遍歷
...    print 'key=%s value=%s'%(key,value)
...  
key=3 value=3
key=test value=uuuuuu
key=vdddd value=tset
key=v value=test
key=y value=[1, 2, 3, 4]
key=x value=35


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM