- Python中对dict进行了支持,使用键-值(key-value)存储,查找速度很快。
比如,要用dict实现根据商品名查找销量,只需要一个“商品”-“销量”的对照表,直接通过商品就可以查到销量:
In [1]:
d = {'rice':35, 'wheat':101, 'corn':67}
d['rice']
Out[1]:
- 把数据放入dict还可以直接通过key放入:
In [2]:
d['egg'] = 33
d
Out[2]:
- 一个key只能对应一个value,多次对一个key放入value,后面的值会把前面的值冲掉:
In [3]:
d['corn'] = 88
d
Out[3]:
- 如果key不存在,dict就会报错。要避免key不存在的错误,有两种办法,一是通过 in 判断key是否存在,二是通过dict提供的 get 方法,如果key不存在,可以返回None(返回None的时候Python的交互式命令行不显示结果),或者自己指定的value:
In [ ]:
d['meat']
In [5]:
'meat' in d
Out[5]:
In [6]:
d.get('meat')
In [7]:
d.get('meat',45)
Out[7]:
- 删除一个key,使用pop(key)方法,对应的value也会从dict中删除:
In [8]:
d.pop('rice')
d
Out[8]:
- 有下面几点需要注意:
- dict内部存放的顺序和key放入的顺序是没有关系的
- dict查找和插入的速度极快,不会随着key的增加而增加,但是需要占用大量的内存,内存浪费多
- dict的key必须是不可变对象。字符串、整数等都是不可变的,可以放心地作为key,而list是可变的,就不能作为key:
In [9]:
k = [3,4,5]
d[k] = 6