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']
相关文章
相关标签/搜索