dict
dict是dictionary的简写。使用键值对来进行存储。首先带大家来了解一下键值对是个什么东西。上过高中的伙伴也许知道映射吧,在讲集合那一章的最后一节讲的映射,其实呢个映射就和这个键值对有相似之处,如果你不知道映射没关系。举个例子,坐过火车吧都,火车票上有你的乘车信息,几号车厢第几个座位,然后你就开始找座位,注意了,引入概念了要。座位是在车上不会变得,不管车火车走不走座位就在那里明码标识的,座位上会有人坐在上边。此时我们称座位是键,坐在上边的人是值。当然了有时候春运为了发扬我族传统一个座位挤一挤坐两个人也是存在的。在这里我们不考虑这种情况,但是到站总会有人下车这是不得不考虑的,座位没变人还了。通过以上坐火车的例子大家都明白了,座位是“键”,不变的,坐在上边的人是”值“,是可变的。这下就明白键值的概念了吧。下面我们来创建一个dict的键值对
>>> d={'obama':80,'yiwanka':81,'tumpu':91,'aidhua':73}
>>> d
{'obama': 80, 'yiwanka': 81, 'tumpu': 91, 'aidhua': 73}
我们创建一个美国人气dict其中奥巴马人气值80,伊万卡81,川普刚刚上任人气暴涨91,爱德华73
声明一个变量d来接收键值对,仔细观察他的创建方式和list不同
1、使用大括号.2、里边的元素是用冒号和逗号来区分成对。比如说现在我们的dict里的数据不仅仅这四个人,还有很多,此时我想知道川普现在的人气值,如下操作
>>> d['tumpu']
91
我们将“键”川普放入到中括号里显示出对应的人气值91川普上台一段时间以后,老美发现自己选的太大意了,于是川普人气开始下降,但媒体发现川普女儿伊万卡人长颜值高,能力也强于是人气噗噗的暴涨。
>>> d['tumpu']=81
>>> d['yiwanka']=91
>>> d
{'obama': 80, 'yiwanka': 91, 'tumpu': 81, 'aidhua': 73}
以上就是修改值突然我想查查马云的人气如何?
>>> d['jack Ma']
Traceback (most recent call last): File "", line 1, ind['jack Ma']
KeyError: 'jack Ma'
报错,因为美国人气dict里没有马老板
为了避免尴尬,在查询之前可以验证一下是否有对应的数据
通过以下两种方式:1、使用in关键字。2、使用dict的get方法,如需要可自选返回参数,默认返回none,(在这里没有返回任何,这是在python shell下操作的原因)
>>> 'jack MA'in d
False
>>> d.get('jack MA',-1)
-1
>>> d.get('jack MA')
>>>
此外还有其他操作,清除所有的项clear(),setdefault(k,v),pop(k)等操作。
再次说一下setdefault(k,v)的用法。与get()方法类似,如果没有就给他赋值,比如说我们看看勒布朗詹姆斯的人气如何
>>> d.setdefault('lebrojames')
>>> d
{'obama': 80, 'yiwanka': 81, 'tumpu': 91, 'aidhua': 73, 'lebrojames': None}
之前并没有勒布朗,现在有了,但是值是空的,这是因为我并没有给他赋值,原本打算看一下他的人气结果没有,现在给他赋值。并再次使用同样的方法查看
>>> d['lebrojames']=94
>>> d
{'obama': 80, 'yiwanka': 81, 'tumpu': 91, 'aidhua': 73, 'lebrojames': 94}
>>> d.setdefault('lebrojames')
94