一. 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. 无序性(集合中的元素没有先后之分)