Python dict(字典)
来源:互联网 发布:优衣库 淘宝 编辑:程序博客网 时间:2024/06/05 04:06
Python dict即字典,是一种非常有用的数据结构,相当于其他语言的Map,这种数据结构采用键值对(key-value)形式存储,具有非常快的查询速度,即使在数据量十分庞大的情况下也依然如此。
Python dict 形式:每一个元素都是键值对key:value,以”:”分割,元素之间以”,”作为分隔符,最后一个元素的”,”可以省略。 dict = {'Steve': 100, 'Johnson': 99, 'Peter': 90}
示例:
特性(博客最后将从实现方式来说明为什么是这样):
- 键必须是唯一的,但值不必。
- 键和值可以是任何数据类型,键必须是不可变的,如字符串、数字或者不包含可变元素的tuple,不能用list等可变元素。
- 不允许一个键出现两次或多次,如果同一个键被赋值多次则最后一次赋的值将会被记
- 具有非常快的查询速度
Python dict基本操作
>>> dict = {'Name': 'Steve', 'Height': '170cm', 'weight': '63kg'}>>> dict['Name'] #按键访问Steve>>>dict['Nation'] #访问不存在的元素会报错Traceback (most recent call last): File "<stdin>", line 1, in <module>KeyError: 'Nation'>>> dict['Weight'] = '65kg'>>> dict['Weight']'65kg'>>> del dict['Name'] #删除键Name 其值也会被一并删除>>> dict.clear() #清空字典 还可以访问结果为{}>>> del dict #删除字典 不能访问 因为执行该操作后字典不复存在
字典内置函数&方法
Python内置了以下操作字典的函数
'dict = {'Name': 'Steve', 'Height': '170cm', 'weight': '63kg'}'
。 type(variable) 返回输入的变量类型,如果变量是字典就返回<class 'dict'>
。Python dict 提供了以下方法:
每个方法的详情,可以点开这里然后点每个方法的超链接:
http://www.runoob.com/python3/python3-dictionary.html
从dict的实现方式来说明dict的特性
Python中的dict也即Java/C++/C#中的Map,其键值对的映射关系是通过哈希算法来实现的。哈希算法是一种计算式查找法,其基本思想是在关键字k和存储位置p之间建立一个对应关系H,使得p = H(K)。因此存储的时候先对k使用方法H(可以有多种方法这里不做详细介绍)计算出存储地址p,而需要访问的时候再根据对k做H运算以求得p。由于地址是通过约定好的方法H得出的,所以存储效率跟数据量没有关系,存取速度只跟H方法的复杂程度有关。
基于以上原因:
- dict的键唯一 :因为每一个键都只对应一个地址,相同的键经由H方法计算出的地址一定相同。
- 键必须是不可变的:键如果可变,则经由H方法计算出的地址也是可变,这样就导致键值对这种存储形式完全混乱。
也是基于以上原因,dict内部存放的顺序和key-value对放入的顺序是无关的,因为地址映射关系是由H得到的。而数组对放入元素的顺序是有关的,因为第一个元素被放在下标为0的地址,之后的每个元素的地址都会递增等同于元素类型长度的地址长度。如一维数组地址的计算方法:Loc(a[n]) = Loc(a[0]) + (n-1) * size
和list想比,dict有以下几个特点:
- 查找和插入的速度极快,不会随着key的增加而变慢;
- 需要占用大量的内存,内存浪费多。
dict是典型的以空间换时间的数据结构,这样的例子还有很多。
而list相反:
- 查找和插入的时间随着元素的增加而增加;
- 占用空间小,浪费内存很少。
上面的说明是基于数据结构来说明的,如果你没有相关知识理解起来可能有困难,你不妨看一下这篇教程:
https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/00143167793538255adf33371774853a0ef943280573f4d000
- Python中dict 字典
- python dict字典
- python dict字典
- python dict字典
- Python dict 字典
- python 字典 dict
- Python基础-dict字典
- python字典dict
- Python中的字典dict
- python--Dict字典概述
- 6 Python字典dict
- python:字典(dict)
- python dict 字典 总结
- Python-dict字典
- Python字典(dict)简介
- Python字典dict
- python dict字典
- Python 字典(dict)
- Android隐藏标题栏
- 十六进制数转换为十进制-c语言
- 任务执行排序(51nod 1099)
- ReactNative50个demo源码
- 大热片《寻梦环游记》到底在讲什么
- Python dict(字典)
- 关系数据库标准语言SQL
- JVM运行时数据区
- 金海佳学C++primer 练习9.41
- 在测量和校准应用的焦点的XCP
- 去除List集合中的重复值(四种好用的方法)
- 常见排序算法详解 (收藏!)
- javascript之轮播图效果
- php查询数据库后在页面上显示中文乱码的问题