字典是什么 字典是Python中唯一内建的映射类型,是一种可变容器类型,可以存储任意类型对象。 键一般是唯一的,如果重复最后的一个键值对会替换前面的,值不需要唯一。
创建和使用字典
字典由多个键与其对应的值构建成的键-值对组成,中间由冒号隔开,项之间用逗号隔开,字典由大括号括起来。空字典由{}组成
创建空字典
dict={}非空字典
dict = {'Alice': '23', 'Beth': '34', 'Cecil': '45'}
遍历字典里中所有的key和value的值
dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'} # 访问某一个键值对 print(dict['Name']) # 遍历所有key值 # 方法一 for c in dict.keys(): print(c) # 方法二 for c in dict: print(c) # 遍历所有的value值 # 方法一 for c in dict.values(): print(c) # 方法二 for c in dict: print(dict[c])
修改字典和删除字典元素
dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'} # 修改字典的值 dict['Name'] = "Kuru" # 删除字典元素 del dict['Name'] # 清空字典所有条目 dict.clear()
添加元素
同学们,字典里是没有append这个方法的,那是列表的方法,不要乱用哦
dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'} # 直接添加 dict['sex']="female" # 使用update方法 # 参数为字典对象 传入一个新的dict对象 # key不存在则是添加元素!(如果这个新的dict对象中的key已经在当前的字典对象中存在了,则会覆盖掉key对应的value) dict.update({"addr":"Shandong"}) # print(dict) # {'Name': 'Zara', 'Age': 7, 'Class': 'First', 'sex': 'female', 'addr': 'Shandong'}
字典的一些特性
字典值可以没有限制地取任何python对象,既可以是标准的对象,也可以是用户定义的,但键不行不允许同一个键出现两次。创建时如果同一个键被赋值两次,后一个值会被记住键必须不可变,所以可以用数字,字符串或元组充当,所以用列表就不行字典是完全无序的映射集合,当你遍历字典元素时,添加元素的顺序与访问元素的顺序均无任何关联
字典的实现
字典引用了哈希表的原理,使得关键字和值一一对应。
散列表(Hash table,也叫哈希表),是根据关键码值(Key和value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。
给定表M,存在函数f(key),对任意给定的关键字值key,代入函数后若能得到包含该关键字的记录在表中的地址,则称表M为哈希(Hash)表,函数f(key)为哈希(Hash) 函数。