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:[;;;;] } }
-
-
字典的嵌套与列表的嵌套十分相似,得一层层得找到要找到要找的数据
-