python基础5
字典
-  什么是字典 - 能存储大量关系型数据的一个容器数据类型
- 用{}包裹的
- 以键值对的方式存储数据的
 
-  基本结构 -  dic = { 'key':value, 'key1':value }
 
-  
-  字典要求 - 键必须是可哈希的【即不可变的数据类型】(int str 【很少 boolean tuple】)
- 值可以是任意类型
- 用逗号分割键值对
 
-  字典和列表的区别 - 相同点:都是能储存大量数据的容器数据类型,【在3.6X以上的版本字典可以说是有序的(插入序)】
- 不同点: - 列表通过索引取值,速度相对字典较慢
- 字典通过key取值,速度较快
- 列表的数据毫无关联性,字典是关系型数控类型
 
 
-  字典的优缺: - 优:查询速度快,数据关系明确
- 缺:占用空间,明显的以空间换时间
 
-  字典的常见的创建方法 -  方法一 -  dic = dict((('key',value),('key1',value)))
 
-  
-  方法二 -  dic = dict(key=value,key1 = value)
 
-  
-  方法三 -  dic = dict({'key':value})
 
-  
-  方法四 -  dic = dict(zip(iterable,iterable))
 
-  
-  方法五 -  dic = { k,v for k in itearable for v in itearable}
 
-  
-  方法六 -  dic = fromkeys(itearable,value)
 
-  
 
-  
-  字典的增删改查-  增 -  方法一【存在改的操作,如果存在key就改值,没有就创建】 -  dic['key'] = value
 
-  
-  方法二【如果存在key就不增加,不存在就增加(有则不加,无则加值)】 -  dic.setdefault(key,value)
 
-  
 
-  
-  删【重点就是 pop方法】-  方法一【pop是有返回值的,返回的就是value, default_value如果存在,当pop找不到key时,不会报错,只会返回default_value,不存在,找不到就会报错】-  dic.pop(key,default_value)
 
-  
-  方法二【清空字典】 -  dic.clear()
 
-  
-  方法三【按照key删除,找不到key就报错】 -  del dic[key]
 
-  
 
-  
-  改【主要是update】 -  方法一 -  dic[key] = new_value
 
-  
-  方法二【update更新数据的意思,有则改之,无则加对】 -  dic.update(key = value,key = value) dic.update(dic) dic.update([(key,value),(key1,value1)])
 
-  
 
-  
-  查【常用get方法】 -  方法一 -  dic[key]
 
-  
-  方法二【返回值是key对应的值,如果没有设置 default_value找不到值会报错,设置了,找不到就会返回预设值】-  dic.get('key',default_value)
 
-  
 
-  
 
-  
-  字典的其他常用方法 -  方法一 -  dic.keys() # 返回值是一个类似于列表的数据类型,j仅仅是类似,没有列表的任何属性,可以转换为列表 l = list(dic.keys()) # 一般与for循环联用 for key in dic.keys(): print(key) # 其实直接使用for循环,遍历字典,返回值也是key for key in dic: print(key) #也是字典的全部key
 
-  
-  方法二 -  dic.values() #同上,返回值是字典的全部values,也可转成list # 一般也是与for循环联用 for value in dic.values(): print(value)
 
-  
-  方法三 -  dic.items() # 返回值是一个类似列表内包裹多个元组,每一个元组内存放的是key和value的二元组 # 一般与for联用 for key,value in dic.items(): #这里存在拆包赋值的操作 print(key,value)
 
-  
 
-  
-  字典的嵌套 -  在字典内嵌套字典、列表、set -  dic = { 'key':{ 'name':'p', 'age':24, hobby_list:[;;;;] } }
 
-  
-  字典的嵌套与列表的嵌套十分相似,得一层层得找到要找到要找的数据 
 
-