標籤:
字典原來是這麼回事兒
Python學習到現在,我們已經知道,如果想將值分組到結構中,並且通過編號對其進行引用,列表就可以派上用場。不過,今天,我們將學到一種通過名字引用值的資料結構,應該知道這種資料類型叫做映射。字典則是Python中唯一內建的映射類型,那麼我們就來學習字典。
認識字典
字典是可變的,並且可以儲存任意數量的Python對象。下面這個例子就是簡單的字典類型:
1 phonebook={‘zhangsan‘:‘12345‘,‘lisi‘:‘54321‘}2 print phonebook
字典由多個鍵及與其對應的值構成的對組成(我們也把鍵/值對稱為項)。字典中包括很多鍵,每一個鍵對應一個值。鍵在字典中是唯一的,但是值不是唯一的。在上例中,名字是鍵,電話號碼是值。每個鍵和它的值之間用冒號(:)隔開,項之間用逗號(,)隔開,而整個字典用大括弧括起來。空字典(不包含任何項)由兩個大括弧組成,像這樣:{}。
dict函數:我們可以調用dict函數對其他映射(比如其他字典)或者(鍵,值)這樣的序列或者關鍵字參數來建立字典。
1 item=[(‘name‘,‘BaiYiShaoNian‘),(‘age‘,‘23‘)]2 d=dict(item)3 print d
基本操作
len(d) : 返回字典d中項(鍵-值對)的數量
d[k] : 返回字典d中鍵k對應的值
d[k]=v :將值v關聯到字典d的鍵k上
del d[k] :刪除鍵k的項
k in d : 檢查鍵k是否存在於字典d中
1 d={‘name‘:‘BaiYiShaoNian‘,‘age‘:‘23‘,‘from‘:‘ChongQing‘,‘nowAdd‘:‘Jilin‘}2 print len(d)3 print d[‘name‘]4 d[‘name‘]=‘huangSir‘5 print d6 del d[‘age‘]7 print d8 print ‘from‘ in d 9 print ‘age‘ in d
小結:在字典中檢查鍵的成員資格比在列表中檢查值的成員資格更加高效,資料規模越大,兩者的查詢效率差別就越大。
字典格式化字串:我在字串一篇中有講到字串的格式化方法,這裡,又出現字典格式化字串了。想想有什麼相同之處和不同之處呢,你是不是應該試著思考一下?(提示:字典是以映射的方式存在的)
1 d={‘name‘:‘BaiYiShaoNian‘,‘age‘:‘23‘,‘from‘:‘ChongQing‘}2 print ‘introduce yourself‘3 print ‘My name is %(name)s , I\‘m %(age)s years old , I\‘m from %(from)s .‘ % d
字典方法
clear:清除字典中所有的項,無傳回值。(通過下面兩個例子感受clear方法的特點在哪裡)
copy:返回一個具有相同鍵-值對的新字典(淺複製)
deepcopy:深複製
1 d={‘zhangsan‘:[‘789‘,‘123‘],‘lisi‘:‘12313‘} 2 d2=d.copy() 3 d[‘zhangsan‘].append(‘999‘) 4 print d 5 print d2 6 7 from copy import deepcopy 8 d={‘zhangsan‘:[‘789‘,‘123‘],‘lisi‘:‘12313‘} 9 d3=deepcopy(d)10 d[‘zhangsan‘].append(‘999‘)11 print d12 print d3
fromkeys:使用給定的鍵建立新的字典,每個鍵預設對應的值為None。
get:一個更寬鬆的訪問字典的方法。
一般來說,如果正常訪問字典中不存在的鍵的話會出錯,那麼使用get方法就不會報錯,它返回的是None。
has_key:檢查字典中是否含有給出的鍵。運算式d.has_key(k)相當於k in d。
items和iteritems:items將字典項以列表的形式返回,iteritems和items作用相同,但是它返回的是一個迭代器對象而不是列表。
keys和iterkeys:keys方法將字典中的鍵以列表形式返回,iterkeys方法將字典中的值以列表返回
pop:獲得對應於給定鍵的值,並將這個鍵-值對從字典中移除
values和itervalues:和keys、iterkeys相對應,values方法以列表的形式返回字典中的值(itervalues傳回值的迭代器)
總結:目前為止,我們已經學習到了Python中字串、元組、列表、字典的基本知識了,接下來應該怎麼學呢?if 和 while語句嗎?我覺得這些迴圈語句可以在今後的Python例子中自然的就學到了。所以,接下來,我決定繼續學習Python的進階編程和爬蟲的知識了。
加油!BaiYiShaoNian。
Python學習總結之四 -- 這就是Python的字典