字典
数据类型划分:分为可变数据类型,不可变数据类型
不可变数据类型(可哈希):元组,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 #在嵌套的字典里面添加一个键值对