字典是python中唯一的映射类型,采用键值对(key-value)的形式存储数据。
python对key进行哈希函数运算,字典是无序存储的:数字、字符串、元组。
列表是有序的对象结合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的
数据类型分为可变和不可变
可变数据类型:list dict set
不可变:bool 元祖 str int 可哈西
1.dict(key,value)
key 必须是不可变数据类型,
value 可以使任意类型
2.优点:可以二分查找去查询 存储大量关系型数据
特点:无序,可嵌套
dic = { 'name':['大猛','小孟'], 'py9':[{'num':71,'avg_age':18,}, {'num': 71, 'avg_age': 18, }, {'num': 71, 'avg_age': 18, }, ], True:1, (1,2,3):'wuyiyi', 2:'二哥', } print(dic) 输出:{True: 1, 'name': ['大猛', '小孟'], 'py9': [{'num': 71, 'avg_age': 18}, {'num': 71, 'avg_age': 18}, {'num': 71, 'avg_age': 18}], 2: '二哥', (1, 2, 3): 'wuyiyi'}
3.字典的增删改查:
增

dic={'age': 18, 'name': 'jin', 'sex': 'male'} 1.pop print(dic.pop('name'))#有返回值,通过键删除,打印出删除的值 输出:jin dic.popitem()#随机删除,元祖里是删除的键值,也有返回值 2.del del dic #删除字典,再打印字典会报错 del dic['age'] 删除age键值对 输出:{'sex': 'male', 'name': 'jin'} 3.clear #清除字典内容 dic.clear() 输出:[]

dic={'age': 18, 'name': 'jin', 'sex': 'male'} 1.通过键值直接赋值改 dic['age']=20 2.update dic1={'我':'朱兆筠','age':18,'name': 'jin'} dic.update(dic1)#把dic1的内容更新覆盖到dic 输出:{'我': '朱兆筠', 'age': 18, 'name': 'jin', 'sex': 'male'}

dic1 = {'age': 18, 'name': 'jin', 'sex': 'male',} 1.print(dic.keys())#打印所有键 输出:dict_keys(['name', 'sex', 'age']) print(dic.values())#打印所有值 输出:dict_values([18, 'male', 'jin']) print(dic.items())#打印所有键值对 输出:dict_items([('age', 18), ('sex', 'male'), ('name', 'jin')]) 2.for i in dic: #默认输出键 输出:name sex age for i in dic.keys(): 输出:name sex age for i in dic.values(): 输出:18 jin male for k,v in dic.items(): print(k,v) 输出:name jin sex male age 18 3.通过键直接查,但是查不到的话就报错 v1=dic['name'] print(v1) 输出:jin 4、get 查不到不报错,可以设置返回值用这个比直接查好 dic.get('name11’,没有这个键) 输出:没有这个键
4.dic 嵌套
dic = { 'name':['alex','wusir','taibai'], 'py9':{ 'time':'1213', 'learn_money':19800, 'addr':'CBD', }, 'age':21 } 1.把age 改成56 dic[age]=56 输出:{'py9': {'addr': 'CBD', 'time': '1213', 'learn_money': 19800}, 'name': ['alex', 'wusir', 'taibai'], 'age': 56} 2.在name 里增加一个'ritina' dic[name].append('ritina') 输出:{'py9': {'addr': 'CBD', 'time': '1213', 'learn_money': 19800}, 'name': ['alex', 'wusir', 'taibai', '日天'], 'age': 56} 3.把name ['alex','wusir','taibai']里alex变大写 dic['name'][0]=dic['name'][0].upper() 4.在py9里面添加新的键值对 dic['py9']['female']=6 print(dic)