码迷,mamicode.com
首页 > 编程语言 > 详细

Python字典

时间:2020-09-17 15:35:43      阅读:27      评论:0      收藏:0      [点我收藏+]

标签:交互   空间   使用   存在   存储位置   避免   strong   字符串   dict   

Python内置了字典:dict的支持,dict全称dictionary,在其他语言中也称为map,使用键-值(key-value)存储,具有极快的查找速度。

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

dict的实现原理和查字典是一样的。先在字典的索引表里(比如部首表)查这个字对应的页码,然后直接翻到该页,找到这个字。无论找哪个字,这种查找速度都非常快,不会随着字典大小的增加而变慢。

(1)一个key只能对应一个value。

(2)把数据放入dict的方法,除了初始化时指定外,还可以通过key放入

  d[‘Adam‘] = 67

(3)避免key不存在的错误,有两种办法

方法一:通过in判断key是否存在

  ‘Thomas‘ in d

方法二:通过dict提供的get()方法,如果key不存在,可以返回None,或者自己指定的value

  d.get(‘Thomas‘)
  d.get(‘Thomas‘, -1)

注意:返回None的时候Python的交互环境不显示结果。

(4)删除

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

  d.pop(‘Bob‘)

(5)请务必注意,dict内部存放的顺序和key放入的顺序是没有关系的。

(6)list与dict的比较

Ⅰ、dict:

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

Ⅱ、list:

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

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

(7)dict的key必须是不可变对象

这是因为dict根据key来计算value的存储位置,如果每次计算相同的key得出的结果不同,那dict内部就完全混乱了。这个通过key计算位置的算法称为哈希算法(Hash)

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

Python字典

标签:交互   空间   使用   存在   存储位置   避免   strong   字符串   dict   

原文地址:https://www.cnblogs.com/ptxiaochen/p/13619184.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!