初识dict

目录

初识dict

新增数据

修改数据

pop()

dict和list的区别

dict的key必须是不可变对象


  • 初识dict

dict全称dictionary(字典),使用键-值(key-value)存储,具有极快的查找速度。

>>> d = {'Michael': 95, 'Bob': 75, 'Tracy': 85}
>>> d['Michael']
95

注意:dict内部存放的顺序和key放入的顺序是没有关系的,先在字典的索引表里(比如部首表)查这个字对应的页码,然后直接翻到该页,找到这个字。无论找哪个字,这种查找速度都非常快,不会随着字典大小的增加而变慢。

  • 新增数据

>>> d['Adam'] = 67
>>> d['Adam']
67
  • 修改数据

>>> d['Jack'] = 90
>>> d['Jack']
90
>>> d['Jack'] = 88
>>> d['Jack']
88
  • 判断key是否存在
方法1,通过in判断key是否存在:
>>> 'Thomas' in d
False
方法2,通过dict提供的get()方法,如果key不存在,可以返回None,或者自己指定的value:

>>> d.get('Thomas')
注意:返回None的时候Python的交互环境不显示结果。

下面这个方式有问题,搜一下用法
>>> d.get('Thomas', -1)
-1
  • pop()

pop(key)方法,对应的value也会从dict中删除:

>>> d.pop('Bob')
75
>>> d
{'Michael': 95, 'Tracy': 85}
  • dict和list的区别

dict有以下几个特点:

  1. 查找和插入的速度极快,不会随着key的增加而变慢;
  2. 需要占用大量的内存,内存浪费多。

而list相反:

  1. 查找和插入的时间随着元素的增加而增加;
  2. 占用空间小,浪费内存很少。

所以,dict是用空间来换取时间的一种方法。

  • dict的key必须是不可变对象

​​​​​​​在Python中,字符串、整数等都是不可变的,因此,可以放心地作为key。而list是可变的,就不能作为key:

>>> key = [1, 2, 3]
>>> d[key] = 'a list'
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: unhashable type: 'list'

猜你喜欢

转载自blog.csdn.net/little_nono/article/details/82390728