Python之什麼是dict

咱們已經知道,list 和 tuple 能夠用來表示順序集合,例如,班裏同窗的名字:函數

['Adam', 'Lisa', 'Bart']

或者考試的成績列表:spa

[95, 85, 59]

可是,要根據名字找到對應的成績,用兩個 list 表示就不方便。code

若是把名字和分數關聯起來,組成相似的查找表:索引

'Adam' ==> 95
'Lisa' ==> 85
'Bart' ==> 59

給定一個名字,就能夠直接查到分數。ip

Python的 dict 就是專門幹這件事的。用 dict 表示「名字」-「成績」的查找表以下:get

d = {
    'Adam': 95,
    'Lisa': 85,
    'Bart': 59
}

咱們把名字稱爲key,對應的成績稱爲value,dict就是經過 key 來查找 valueit

花括號 {} 表示這是一個dict,而後按照 key: value, 寫出來便可。最後一個 key: value 的逗號能夠省略。ast

因爲dict也是集合,len() 函數能夠計算任意集合的大小:class

>>> len(d)
3

注意: 一個 key-value 算一個,所以,dict大小爲3。module

任務

新來的Paul同窗成績是 75 分,請編寫一個dict,把Paul同窗的成績也加進去。

d = {
    'Adam': 95,
    'Lisa': 85,
    'Bart': 59
}
參考代碼:
d = {
    'Adam': 95,
    'Lisa': 85,
    'Bart': 59,
    'Paul': 75
    
}

Python之訪問dict

咱們已經能建立一個dict,用於表示名字和成績的對應關係:

d = {
    'Adam': 95,
    'Lisa': 85,
    'Bart': 59
}

那麼,如何根據名字來查找對應的成績呢?

能夠簡單地使用 d[key] 的形式來查找對應的 value,這和 list 很像,不一樣之處是,list 必須使用索引返回對應的元素,而dict使用key:

>>> print d['Adam']
95
>>> print d['Paul']
Traceback (most recent call last):
  File "index.py", line 11, in <module>
    print d['Paul']
KeyError: 'Paul'

注意: 經過 key 訪問 dict 的value,只要 key 存在,dict就返回對應的value。若是key不存在,會直接報錯:KeyError。

要避免 KeyError 發生,有兩個辦法:

一是先判斷一下 key 是否存在,用 in 操做符:

if 'Paul' in d:
    print d['Paul']

若是 'Paul' 不存在,if語句判斷爲False,天然不會執行 print d['Paul'] ,從而避免了錯誤。

二是使用dict自己提供的一個 get 方法,在Key不存在的時候,返回None:

>>> print d.get('Bart')
59
>>> print d.get('Paul')
None

任務

根據以下dict:

d = {
    'Adam': 95,
    'Lisa': 85,
    'Bart': 59
}

請打印出:

Adam: 95
Lisa: 85
Bart: 59參考代碼:d = {    'Adam': 95,    'Lisa': 85,    'Bart': 59}for key in ['Adam', 'Lisa', 'Bart']:    print "%s: %d"%(key, d[key])或者d = {    'Adam': 95,    'Lisa': 85,    'Bart': 59}print "Adam:", d.get('Adam')print "Lisa:",d['Lisa']if 'Bart' in d:    print "Bart:",d['Bart']
相關文章
相關標籤/搜索