python学习笔记九 之 字典

字典

  • 字典属于python中叫做映射的数据结构;
  • 字典的作用与列表类似,都是用于存储数据;
  • 列表的存储性能好,但查询性能差;如,查找列表中某个值时,在不知道其索引的情况下就只能遍历整个列表;
  • 字典中每一个元素都有一个唯一的名字,通过这个唯一的名字可以快速的查找到指定的元素;
  • 字典的存储性能差,查询性能好;
  • 字典中可以保存多个对象,字典中对象称为值(value);每个对象都有唯一的名字,对象的名字称为键(key),通过键可以快速的查找对应的值(value);
  • 字典也称做键值对(结构),每个字典都可以有多个键值对,每个 键值对称为一项(item)

字典的创建

{}

创建一个空字典
python学习笔记九 之 字典
创建非空字典对象

  • 语法:{key:value,key:value,key:value}
  • 字典的值可以为任意对象(int、bool、str、字典、列表等均可);
  • 字典的键可以为任意不可变对象(int、bool、str等 列表是可变对象不行);一般用str作为键;
    python学习笔记九 之 字典
  • 字典的键不可重复,出现重复的后面的会替换前面的;
    如,两个相同的键’B’,只会出现后面的一项;
    python学习笔记九 之 字典
dict()
  • 直接传入键值对进行初始化;创建好的字典键均为str型;
    python学习笔记九 之 字典
  • 将含有双值子序列的序列转化为字典;双值字序列,如[(1,2),‘ab’]
    python学习笔记九 之 字典
    注: 双值序列:序列中只有两个值,[1,2],‘ab’;
       子序列:序列中元素也是序列,则称该元素为子序列;
       双值子序列:序列中元素是双值序列,则称该元素为双值子序列;

获取字典值

根据键获取值

字典中的键可以获取对应的值;
python学习笔记九 之 字典

注意: 键不存在时会报错

get(key[, default])

根据键获取字典的值;与直接使用键获取对应的值基本一样,但获取字典中不存在的键时返回None,不会报错;
python学习笔记九 之 字典
获取指定键的值时可以指定默认值,即找不到就返回默认值;
python学习笔记九 之 字典

修改字典

dict[key]=value
  • key存在时,用新value覆盖之前的value即,修改值;
    python学习笔记九 之 字典
  • key不存在,则会自动新增一个键值对;
    python学习笔记九 之 字典
dict.setdefault(key[,default])

dict.setdefault(key[,default])可用来向字典中添加key-value;

  • 如果键key存在,返回键对应的值;
    python学习笔记九 之 字典
  • 如果键key不存在,则向字典中新增一个键值对,默认值为value
    python学习笔记九 之 字典
update(dict)
  • 将另一个字典中的key-value对加到当前字典中;
    python学习笔记九 之 字典
  • 如果两个字典中含有相同的键key,则当前字典的键值对会被另一个字典覆盖;
    python学习笔记九 之 字典

删除键值对

del
  • 使用del直接删除键值对
    python学习笔记九 之 字典
  • 删除不存在的key会报错;
    python学习笔记九 之 字典
  • del dict 直接删除整个字典
dict.popitem()
  • 随机删除字典中一个键值对,一般会删除最后一个;将被删除的key-value作为返回值以元组形式返回,前面为key,后面为value ;
    python学习笔记九 之 字典
dict.pop(key[,default])
  • 根据key删除字典中key-value;并将被删除的value返回;
    python学习笔记九 之 字典
  • 删除不存在的key时,不写默认值会报错,写默认值后会返回默认值;
    python学习笔记九 之 字典
    python学习笔记九 之 字典
dict.clear()
  • cleat()会清空字典

字典的遍历

keys()
  • 以序列的形式返回字典的所有key;
    python学习笔记九 之 字典
  • 通过遍历key来获取value
    python学习笔记九 之 字典
values()
  • 以序列的形式返回字典的所有value;
    python学习笔记九 之 字典
  • 遍历values来获取value
    python学习笔记九 之 字典
items()
  • 返回包含所有的key,value的序列
    python学习笔记九 之 字典
  • 对其进行遍历即可
    python学习笔记九 之 字典

len()

  • 获取字典项数或字典键值对数;
    python学习笔记九 之 字典

in、not in

  • in检查字典是否包含指定的键
  • not in检查字典是否不包含指定的键
    python学习笔记九 之 字典

dict.copy()

  • 对字典dic进行浅复制,并以字典返回;复制的对象与原对象独立,互不影响;
    python学习笔记九 之 字典