Python:字典类型
Posted Aloys Wang
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python:字典类型相关的知识,希望对你有一定的参考价值。
概念
无序的,可变的,键值对集合
定义
方式1
{key1: value1, key2: value2, ......}
方式2
fromkeys(S, v=None)
- 静态方法:类和对象都可以调用
- 类调用:dict.fromkeys("xxx", "yyy"),此处的dict指的是字典类型
- 对象调用:dic.fromkeys("xxx", "yyy"),此处的dic指的是实例化的字典对象
注意
- key不能重复,如果重复,后面的会把前面的覆盖
- key必须是任意不可变类型
不可变的原因:
- python的字典,采用哈希的方式实现
- 简单存储过程:
- 初始化一个表格,用来存放所有的值
- 表格可以称为哈希表
- 存储一个键值对的时候,会做如下操作
- 根据给定的key,通过某些操作,得到一个在哈希表中的索引位置
- 把key通过“哈希函数”转换成一个整型数字,称为哈希值
- 将该数字对数组长度进行取余,取余结果当做下标
- 如果产生了“哈希冲突”
- 采用开放寻址法,通过探测函数查找下一个空位
- 根据索引位置,存储给定的“值”
- 根据给定的key,通过某些操作,得到一个在哈希表中的索引位置
- 初始化一个表格,用来存放所有的值
- 简单查找过程
- 再次使用哈希函数将key转换为对应的列表的索引,并定位到列表的位置获取响应的value
字典的意义
- 可以通过key,访问对应的值,使得这种访问更具意义
- 查询效率得到很大提升
常用操作
增加
dic[key] = value
:当key不存在的时候,就是增加操作
删除
del dic[key]
:删除一个字典元素dic.pop(key[, default])
:删除指定键值对,返回删除的值,如果key不存在,则直接返回给定的default值,如果也没有给default,则报错dic.popitem()
:删除按升序排序后的第一个键值对,并以元组的形式返回该键值对,如果字典为空,则报错dic.clear()
:删除字典内所有键值对,返回None,只是内容被清空,字典本身还存在
修改
查找
以上是关于Python:字典类型的主要内容,如果未能解决你的问题,请参考以下文章