字典是Python中唯一的映射類型。所謂映射即指該數據類型包含哈希值(key)和與之對應的值(value)的序列。字典是可變類型。字典中的數據是無序排列的。
4.1.1字典的創建及賦值
dict1={} dict2={'name':John,'age':24}
使用dict()函數創建字典。
dict()函數接受序列,或關鍵字參數作為參數創建字典。若不提供參數則創建空字典。
dict1=dict([['x',1],['y',2]])#接受list作為參數創建字典 dict2=dict(x=1.y=2)#接受關鍵字參數作為參數
使用內建方法fromkeys()來創建一個“默認字典”,該字典中的鍵均對應相同的值,如果值未給出則為None。
dict1={}.fromkeys(('x','y'),1) dict1 >>>{'y':1,'x':1}
4.1.2字典中值得訪問
通過字典中的鍵訪問值。
info={'name':'bing','age':24,'sex':'male'} info['name'] >>>'bing'
Python中默認通過訪問鍵來獲取值。
info={'name':'bing','age':24,'sex':'male'} for key in info: print 'key=%s,value=%s'%(key,info[key]) >>> key='age',value='24' key='name',value='bing' key='sex',value='male'
4.1.3更新字典
對字典的更新包括以下操作,增加一個“鍵-值”對,刪除字典元素,清除字典中所有或個別條目,修改某個元素的值。下面舉例說明。
info={'name':'bing','age':24,'sex':'male'} info['name']='xiaobing'#更新已有條目 info['addr']='lanzhou'#增加新條目
對字典的刪除一般指刪除某個“鍵-值”對,刪除整個字典會用到del語句。
del info['name'] #刪除dict中鍵為name的條目 info.clear() #清空字典所有條目 del info #刪除整個字典 info.pop(‘name’)#返回並刪除鍵為name的條目
4.2.1映射類型的操作符
1、字典查找操作符:[]
使用方法dict[k]=n,將n賦值給dict中鍵為k的條目;dict[k],訪問dict中鍵為k的條目。
2、成員關系操作符:(in,not in)
dict1={'name':'bing','age':24,'sex':'male'} 'name' in dict1 >>>True 'phone'in dict1 >>>False
需要注意的是in和not in僅作為檢查某個鍵是否在字典中。
4.3.1相關函數
1、dict(),用來創建字典,前面說過不再贅述。
2、len(),返回字典長度,即字典中的“鍵-值”對個數
3、hash(),判斷某個對象是否可以做字典的鍵。講一個對象傳遞給hash(),會返回這個對象的哈希值,只有這個對象是可哈希的才可以作為字典的鍵。
4.4.1字典的內建方法
下面會提到字典的一些內建方法,其余的請在有需要是查閱文檔。
1、dict.keys(),返回一個列表包含字典中的所有鍵。
2、dict.values(),返回一個列表包含字典中的所有值。
3、dict.items(),返回一個由(鍵,值)元組作為元素的列表。
4、dict.clear(),刪除字典中所有元素。
5、dict.copy(),返回字典的一個副本(淺復制)。
6、dict.update(dict2),將字典dict2的鍵-值對添加到dict。
4.5.1對字典中鍵的一些說明
1、鍵不允許一對多,類似映射中兩個集合的對應關系。
2、鍵必須是可哈希的,所有不可變類型都是可哈希的故可作為鍵,可變類型不可哈希即不可作為鍵,如列表,字典類型。
4.6集合數據類型
數學上把集合稱作不同元素的集合,集合(set)成員被稱為集合元素。集合對象是一組無需可哈希的值。集合支持 in,not in 檢查操作符,用len得到集合大小(元素個數),但集合無法創建索引因為集合是無需排列。集合有不同兩種類型,可變集合(set)和不可變集合(frozenset)。
4.6.1集合的創建
集合只能通過它的工廠方法創建
s=set('python') s >>>set(['y','o','n','t','p','h']) type(s) >>> <type,'set'>
4.6.2集合元素的操作
可以遍歷查看集合元素
s=set('python') p in s >>>True x in s >>>False for i in s print i >>> y o n t p h
通過集合的內建方法和操作符增加或刪除集合元素:
1、set.add(),向集合添加新元素
2、set.update(),集合的合並
3、set.remove(),刪除集合中元素
4.7集合成員關系操作
對於集合真正重要的是成員關系及子集的關系操作。
1、成員關系in,not in。
判斷一個元素是否在一個集合中,返回True 或者False。
2、等價與不等價==,!=
集合等價指兩個集合中每個元素都相同
3、真子集與子集(<,<=)
4、並集
符號|或者union()方法。
5、交集
符號&或者等價方法intersection()
6、差集
符號-或者等價方法difference()