字典
数据类型划分:分为可变数据类型,不可变数据类型
不可变数据类型(可哈希):元组,bool值,int,str
可变数据类型(不可哈希):list,dict,se
dict key键必须是不可变数据类型,
value 值任意数据类型。
dict 优点:二分查找去查询
存储大量的关系型数据
特点:无序的,3.5之前的版本,
字典是python中唯一的映射类型,采用键值对(key-value)的形式存储数据。python对key进行哈希函数运算,根据计算的结果决定value的存储地址,所以字典是无序存储的,且key必须是可哈希的希表示key必须是不可变类型,如:数字、字符串、元组。
字典(dictionary)是除列表意外python之中最灵活的内置数据结构类型。列表是有序的对象结合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。
字典的增
dic1 = {'age':18,'name':'sole','sex':'male'} dic1['high'] = 180 #没有键值对,就添加 print(dic1) dic1['age'] = 20 #有就覆盖 print(dic1) dic1.setdefault('weight',100) # setdefault 默认是None,有不做任何操作,没有就添加
字典的删
dic1 = {'age':18,'name':'sole','sex':'male'} dic1.pop('18',None) #可设置返回值 print(dic1) dic1.popitem() #随机删除 有返回值,元祖,删除的键值 print(dic1) dic1.clear() #清空字典 print(dic1) del dic1['age'] #可以删除整个字典 print(dic1)
字典的改
dic1 = {'age':18,'name':'sole','sex':'male'} dic1['age'] = 21 print(dic1) dic1 = {'age':18,'name':'jin','sex':'male'} dic2 = {'age':18,'name':'jin','weight':150} #必须需要两个字典 dic2.update(dic1) # 将dic1所有的键值对覆盖添加(相同的覆盖,没有的添加)到dic2中 print(dic2)
字典的查
dic1 = {'age':18,'name':'sole','sex':'male'} dic1.keys() #查询时,相当一个列表的操作与 print(dic1) dic1.values() #值 print(dic1) dic1.items() #元组,里面是键值 dict_items类型,可迭代的 print(dic1) v1 = dic1['name'] #没有值就报错 print(v1) dic1.get('name1') #不报错,返回None print(dic1)
字典的循环
for i in dic1: #默认打印keys dic1 相当于 dic1.keys,输出的是键 print(i) for i in dic1: #输出的是 值 print(i) for k,v in dic1.items(): #输出的是 键 值 print(k,v)
字典的嵌套
dic = { #字典的嵌套 'name':['sole','memory','fucker'], #字典里面设置第一个列表 'j9':{ #嵌套一个字典 'time':'0525', 'learn_money':30000, 'address':'CBD', }, 'hobbie':'game' } dic['hobbie'] = 'music ' #修改字典里面的爱好 dic['name'].append('xiao') #字典里面的变量增加一个元素 dic['name'][2] = dic['name'][2].upper() #字典里面第三个元素变成大写 dic['j9']['female'] = 4 #在嵌套的字典里面添加一个键值对