Python四种基本数据结构之三——字典的简单使用


字典(dict)

  • dict全称dictionary,在其他语言中也称为map,使用键值对来存储,查找速度极快。
  • dict实现的方式是,给定一个名字:a,dict在内部就可以计算出a对应的95存放的内存地址。
In [7]: d = {'a':95, 'b':90, 'c':85}

In [8]: d
Out[8]: {'a': 95, 'b': 90, 'c': 85}

# 使用key可以直接得到value
In [9]: d['a']
Out[9]: 95

# 通过key存入value
In [11]: d['d'] = 80

# value存在时,直接返回值,若值不存在,则返回KeyError
In [12]: d['d']
Out[12]: 80

In [16]: d.get('d')
Out[16]: 80
    
# 删除一个key,用pop(key)方法,对应的value也会从dict中删除
In [19]: d.pop('d')
Out[19]: 80

In [20]: d
Out[20]: {'a': 95, 'b': 90, 'c': 85}

In [21]: h = d.pop('b')

In [22]: h
Out[22]: 90

In [23]: d
Out[23]: {'a': 95, 'c': 85}

dict内部存放的顺序和key放入的顺序没有关系。

dict和list的比较

与上期刚介绍的列表相比,两者有以下几点异同点:

  • dict有以下几个特点:
    • 查找和插入的速度极快,不会随着key的增加而变慢
    • 需要占用大量的内存,内存浪费多
  • list有以下几个特点:
    • 查找和插入的时间随着元素的增加而增加
    • 占用空间小,浪费内存少

所以dict是用空间来换取时间的方法。有一点一定要注意的是:dict的key值一定是不可变对象。假如是可变对象的话,每次对key使用hash算法,得到的内存地址都不一样的话,则dict就无法正常计算元素的位置了。