字典是什么?
内置的数据结构之一,与列表一样,是可变序列
格式:“键: 值”,键值对。相当于列表当中的一个元素以 键值对 的方式存储数据,列表:有序(第一个放进去的元素在第一个位置上) vs 字典:无序
放入字典中的 键 ,必须是一个不可变序列***不可变序列,就是str字符串等,目前学到2个可变序列就是:列表、字典。
哈希函数
往字典中 存储数据时,要经过一个叫 哈希函数 的工序——要把 键 放入到 哈希函数 中 进行一个计算(计算的是存储位置)——所以要求 键 必须是不可变序列(str、int、bool......)。
hash函数计算出 键入内容 所在位置新建 字典——{}并赋值、dict(name=‘lax,age=21’)
直接用花括号时,用 冒号: 连接 or 用dict()函数时,用 等号= 赋值
查找 字典 元素——对象.get()
最好用get(),直接用[]指定内容,会对不存在的元素查找 报错判断key——print(?in/not in 对象) ;清空所有——对象.clear(),删除——del 对象
新增、修改——用方括号指定对象并赋值
新增、修改——用方括号指定对象并赋值获取字典视图(keys、values、键值对)的方法——对象.keys/values/items()并赋值给一个新对象
及 将获取的视图 转换成列表print(list(新对象))
获取的视图 类型是字典_键/值/键值对字典的遍历
for in循环用来遍历字典的特点
key不可以重复(重复 就被后一个value覆盖前一个value),value可以重复key不可以重复(重复 就被后一个value覆盖前一个value)
Mike重复,所以23把2覆盖了字典会浪费较大内存
key之间的空位就是浪费的空间,因为key所在的位置是由 hash函数 指定的,难以避免会存在“空位”
网友评论