字典

认识字典

  1. 容器型数据类型:
  2. 可变序列(支持增删改操作)
  3. 字典是无序的,顺序不影响结果
  4. {}作为容器的标志,多个键值对逗号隔开:(key1:value1,key2:value2,....,keys:values)
  5. 空字典: dict1 = {}或者dict1 = dict()
  6. 字典中的元素只能是键值对
  7. 键的要求:键的类型必须是不可变的类型的数据(元组、字符串);键必须是唯一
  8. 值的要求:任何数据都可以为值

字典的基本操作

  1. 查:获取字典的值
  1. 查单个:一次获取一个值
    字典[keys]:获取字典中指定键对应的值,键不存在是报错(KeyError)
    字典.get(keys):获取字典中指定键对应的值,键不存在不会报错会返回None
    字典.get(keys, 默认值):获取字典中指定键对应的值,键不存在不会报错会返回默认值
  2. 遍历:
  1. for 键 in 字典::遍历的是键
stu = {'name': '小明', 'gender': '男', 'age': 18, 'score': 100, 'education': '专科',}
for x in stu:
   print(x,stu[x])
  1. for keys,values in 字典.items():遍历出键和值。字典.items(): 将字典的每一组键值对都转换成一个元组
  1. 增/改
  1. 字典[键] = 值 :存在键是修改键对应的值,不存在时添加键值对
  2. 字典.setdefault(键,值) 添加键值对(如果键不存在添加,如果键不存在不动)
  1. 删— 删除键值对
    del 字典[键] ---- 删除指定键对应的键值对
    字典.pop(键) ---- 取出指定的键对应的值
字典的相关操作和相关函数方法
  1. 相关操作:
  1. 运算符:字典不支持:+-*><>=<=,只支持==,!=
  2. in 和 not in : 判断的是字典中指定的键是否存在
  1. 相关函数:
  1. len() : 获取字典中键值对的个数(字典的长度)
  2. dict():将指定数据转换成字典
  1. 数据本身是一个序列
  2. 序列中的元素必须都是有且只有两个元素的小序列,并且其中第一个元素是不可变的数据类型
  1. 相关方法:
  1. 字典.clear() :清空指定的字典
  2. 字典.copy() :将字典复制一份,生成一个新的字典
  3. 字典.keys():返回一个序列、序列中的元素是字典中所有的键
  4. 字典.values() :返回一个序列、序列中的元素是字典中所有的值
  5. 字典.items():返回一个序列、序列中的元素是字典中所有的键和值组成的小元组
  6. 字典.update(序列) :将序列中的元素全部添加到字典中(序列必须是可以转换成字典的序列)
字典和列表的选择:

需要同时保存多个数据的时候,如果多个数据的意义相同(不需要区分)就是用列表,如果多个数据的意义不同,就是用字典

字典推导式:
{表达式1:表达式2 for 变量 in 序列}{表达式1:表达式2 for 变量 in 序列} if 条件语句