Python基础知识(五)------字典

mac2022-06-30  58

Python基础知识(四)------字典

字典

一丶什么是字典

​ dict关键字 , 以 {} 表示, 以key:value形式保存数据 ,每个逗号分隔

​ 键: 必须是可哈希,(不可变的数据类型),必须是唯一的

​ 值: 任意数据类型

特点:

​ 查询的效率非常高,通过key来查找元素 #典型的空间换时间的案例: 虽然查询速度高效,但是占内存大

​ 内部使用key来计算一个内存地址(暂时), hash算法,key必须是不可变的数据类型(key 必须是可哈希的数据类型),key必须是不可变的数据类型

​ 字典是无序的, python3.6版本以上,默认定义顺序,3.5以下随机显示

二丶字典的使用

####增 #setdefault('键名','值') #两个含义: #1.如果key不存在就执行新增. 新增时:没有给值,默认None 如 dic.setdefault('a') --->> {'b': 2, 'c': 4, 'a': None} #2.如果key已经存在,就不在新增,就执行查询 dic.setdefault('键名','值') #添加键值 dic['键名']='值' ####删 #pop 通过键,删除,返回被删除的键锁对应的值 dic.pop('键名') #popitem() 随机删除 dic.popitem() #del dic[键名] #指定的键值对 del dic['键名'] #del 删除整个字典 del dic # ---> 删除的是内存地址 #clear() 清空字典 dic.clear() ####改 #直接修改 dic['key']='新值' #update() 替换修改 dic.update({'键名':'新值'}) #括号内的字典优先级高 ####查 #直接查询 dic('键') #setdefault('键名') 前提是键已存在的情况,执行查询, dic.setdefault('键名') #get('键名','返回的内容')键存在,返回对应的值. 键不存在, 默认返回的None,若指定提示内容,则返回提示内容 dic.get('键名','键不存在,返回的内容') #####字典的使用 #for 循环字典 ,获取所有的键 for i in dic: print(i) #dic.keys() # 获取所有的keys 高仿列表,但是没有索引,可迭代.可以根据keys获取值 a={'a':'1',"b":'2'} print(a.keys()) for i in dic.keys(): print(dic[i]) #dic.values() # 获取所有的values,没有索引,可迭代 a={'a':'1',"b":'2'} print(a.values()) for i in dic.values(): print(i) #dic.items() #获取字典汇中的键值对,以元组形式. a={'a':'1',"b":'2'} print(a.items()) # dict_items([('a', '1'), ('b', '2')]) for i in dic.items() print(i) #-->('a', '1') print(type(i)) #<class 'tuple'> ####解构 #字典 元组 列表 ,字符串 可迭代的都能解构 a,b,c=(a1,b1,c1) # 必须一一对应 a,b={ # 解构的是字典的key "a":1, "b":2, } #字典的结构 a={'a':'1',"b":'2'} for k,v in a.itmes(): print(k,v) # --->k 对应键, v 对应值 ####枚举 enumerate(可迭代对象,索引) 同时列出数据和数据下标 a={'a':'1',"b":'2'} for i,k enumerate(a,1) #第二个参数,默认从0开始 print(i,k) # --- i 是索引, k是键名

额外: enumerate() 函数 得到是一个 迭代器 ,含有__iter__ 和__next__方法

三丶字典的嵌套

goods = [{"name": "电脑", "price": 1999}, {"name": "鼠标", "price": 10}, {"name": "游艇", "price": 20}, {"name": "美女", "price": 998}, ] #取出美女 print(good[3]['name'])

四丶字典的作用

​ 1.字典是存储大量的数据,字典比列表还大

​ 2.字典的查找值的时候,方便快捷,快速

​ 3.字典能够将数据进行关联

​ 4.字典消耗内存大,常用的数据类型:字符串,列表和字典

​ ###字典的转换需要借助 json 模块

五丶字典和列表测试题

#文件读取内容,保存成字典格式的数据,并添加到列表中 cars = ['鲁A32444','鲁B12333','京B8989M','⿊C49678','⿊C46555','沪B25044','冀G11111'] locals = {'冀':'河北', '⿊':'⿊⻰江', '鲁':'⼭东', '鄂':'湖北', '湘':'湖南','京':'北京'} #方式一 dic={} for p in locals: count=0 for carId in cars: if carId.startswith(p): count+=1 if count!=0: dic[locals[p]]=count print(dic) #方式二 dic = {} for el in cars: # 循环列表元素 for key in locals: # 循环字典的key if el[0] in key: #判断每个列表元素的下标索引是0 ,是否在字典的key中存在 #把locals中el[0]每个元素对应的值作为键名 #从字典中获取,如果不存在就返回0,存在就返回1 dic[locals.get(el[0])]=dic.get(locals[el[0]],0)+1 print(locals.get(el[0])) # print('mihuo',dic.get(locals[el[0]],0)) print(dic)

转载于:https://www.cnblogs.com/dengl/p/10997505.html

最新回复(0)