Python基础5_字典,集合

一. Hash
  可变的数据类型是不可以被Hash的
  如果一个值可以Hash,那么说明这是一个不可变的数据类型
二. 字典
  字典是python中唯一的映射类型
  定义: {key1:value1, key2:value2...}
  1.键与值用冒号分开
  2.项与项用逗号分开
  特性: 1. key-value结构
    2. key必须可Hash,且必须为不可变数据类型,必须唯一
    3. 可存放任意多个值,可修改,可以不唯一
    4. 无序
  已知可Hash的数据类型(不可变):int, str, tuple, bool
  不可Hash的的数据类型(可变):list, dict, set
  注意: key必须是不可变的(可Hash),value没有要求,可以保存任意类型的数据
三. 字典的增删改查和其他相关操作
  不能切片
  1. 增加
  dic[""] = "" 如果dict中没有出现这个key,就会新增一个key-value组合
  dic.setdefault("", "")
  如果dic中没有出现过这个key-value,可以通过setdefault()设置默认值
  如果已存在,那么setdefault就不会起作用
  2. 删除
  dic.pop("", "") 删除并返回key对应的value
  dic.popitem() 删除最后一项
  dic.clear() 清空
  del dic[""]
  3. 修改
  dic["old"] = "new" 用new代替old
  dic.update(dic2) 把dic2中的内容更新到dic中,如果key重名,则修改替换,如果不存在key,则新增
  4. 查询
  一般用key来查找具体的内容
  dic["key"] 如果key不存在,则报错
  dic.get(key, default == None) 返回字典中key对应的值,如果key不存在,则返回default值
  dic.setdefault(key, value) 若key存在,字节查询,key不存在,先添加,再查询
  5. 其他相关操作
  dic.key() 返回一个包含字典所有key的列表
  dic.value() 返回一个包含字典所以value的列表
  dic.item() 返回一个包含所有(键,值)元祖的列表
  解构,解包(列表,元祖)
  四. 字典的嵌套
  字典里面套字典
  五. 字典的遍历
  1. 使用for循环直接遍历字典的key
  for k in dic :
    print(k, dic[k])
  2. 可以使用字典的items()+解构可以直接获取到key和value
   for k, v in dic.item() :
  print(k, v)
六. set集合
  由一个或多个确定的元素所构成的整体叫集合
  集合是可变的数据类型,所有不可Hash
  但是集合的元素必须是不可变的数据类型,可以Hash
  所以集合不能互相嵌套
  集合元素的3个特征:
  1. 确定性(元素必须可Hash)
  2. 互异性(去重)
  3. 无序性(集合中的元素没有先后之分)

posted @ 2018-11-30 21:28  lokichoggio  阅读(153)  评论(0编辑  收藏  举报