Python學習筆記四--字典與集合


字典是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()

 


免責聲明!

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



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