一 python中的字典是一种映射类型,其实现是通过哈希表实现的,哈希表是一种数据结构:它按照我们所要求的去工作。哈希表中存储的每一条数据,叫做一个值(value),是根据与它相关的一个被称作为键(key)的数据项进行存储的。键和值合在一起被称为“键-值 对”(key-value pairs)。 哈希表的算法是获取键,对键执行一个叫做哈希函数的操作,并根据计算的结果,选择在数据结构的某个地址中来存储你的值。任何一个值存储的地址皆取决于它的键。正因为这种随意性,哈希表中的值是没有顺序的。你拥有的是一个无序的数据集。哈希表拥有很好的性能,用键查值相当快。
二 python字典的相关操作:
1. 创建字典
# 第一种方法 dict1 = {'name':'linda','age':13}
# 第二种方法 dict2 = dict(['name','linda'],['age',13])
#第三种方法,将一个可迭代对象的值作为字典的每一个键,赋值为1 dict3 = {}.fromkeys(('x','y','z'),1)
2.访问字典
# 返回一个键的列表 dict1.keys() ['name','age']
# 返回一个值的列表 dict1.values() ['linda',13]
# 返回一个包含(键,值)元组的列表 dict1.items() [('name','linda'),('age':13)]
# 返回键name对应的值 dict1['name'] 'linda'
# 得到键的值,若键不存在,则返回默认值 dict1.get('name',None) 'linda'
# 字典中没有sex,返回默认值man dict1.get('sex','man') 'man' dict.iter() #方法 iteritems(), iterkeys(), itervalues()与它们对应的非迭代方法一样,不同的是它们返回一个迭代子,而不是一个列表。
3.修改字典
# 修改键name的值 dict1['name'] = 'lihua' # 给字典增加一个新的值,给字典中增加一个电话(注意,新增加的这个值的键在原来字典中不存在,若存在,则是修改原来的值) dict1['mobile'] = '1333333' # 如果字典中 key 键存在,删除并返回 dict[key],如果 key 键不存在,且没有给出 default 的值,引发KeyError 异常 dict1.pop('name','unknown') 'linda' # 删除键name这条记录 dict1.remove('name') #如果字典中不存在 key 键,由 dict[key]=default 为它赋值,若存在则不改变它的值 dict1.setdefault('name',default='unknown') # 将字典 dict2 的键-值对添加到字典 dict,(在dict存在的键,则更新值,不存在的,则添加) dict.update(dict2) #删除字典中所有元素 dict.clear() #删除字典 del dict1