字典
例题一 infor = {'name': '宋江', 'age': '37'} (1)判断是否有name键存在,有的话,返回我找个这个键了; (2)判断是否有sex键存在,有的话,返回我找个这个键了,没有的话,添加这个键; (3)通过遍历的方式,逐一返回字典的键; (4)取字典的‘add’键,如果取不到,返回‘lclc’ (5)清空该字典; (6)随机逐一删除该字典的键值对; 例题二 d={ '001':{'name': '刘超', 'age': 22, 'addr': '银河系'}, '002':{'name': 'sd', 'age': 27, 'addr': '银河系'}, '003':{'name': '刘sd', 'age': 24, 'addr': '银河系'}, '004':{'name': '刘sorry', 'age': 22, 'addr': '银河系'} } (1)取出所有字典的键,值 (2)通过程序返回如下形式: '001' 'name': '刘超' 'age': 22 'addr': '银河系' '002' 'name': 'sd' 'age': 27 'addr': '银河系' '003' 'name': '刘sd' 'age': 24 'addr': '银河系' '004' 'name': '刘sorry' 'age': 22 'addr': '银河系' 例题3: d={ '001':{'name': '刘超', 'age': 22, 'addr': '山东'}, '002':{'name': '张三', 'age': 27, 'addr': '北京'}, '003':{'name': '李四', 'age': 24, 'addr': '天津'}, '004':{'name': '王五', 'age': 22, 'addr': '北京'} } 逐一判断d中所有的'addr',将其值为'北京'的,全部添加一个新的键值对'house'='10000' 例题4 zd={} 通过用户输入姓名,年龄,地址,给字典zd填键值对 例题5 s={ '001':{'物理': '82', '化学': 22, '语文': '99'}, '002':{'物理': '79', '化学': 79, '语文': '79'}, '003':{'物理': '69', '化学': 87, '语文': '89'}, '004':{'物理': '99', '化学': 76, '语文': '99'}
} (1)求每个学生的平均分 (2)扩展:求班级每科的评均分
-------------------答案------------------------
第一题: (1) 方法一: if 'name' in infor: print('我找到这个键了!') #方法二:get if infor.get('name',False): print('我找到这个键了!') #方法三: for k,v in infor.items(): for k in infor.keys(): if k == 'name': print('我找到这个键了') (2) if infor.get('sex'):###False没有起实质作用 print('我找个这个键了') elif infor.get('sex',True): infor['sex']='男' print(infor) (3) for i in infor.keys(): print(i,end=' ') (4) infor.get('add','lclc') (5) infor.clear() (6) a=len(infor) # print(a) while a > 0: item=infor.popitem() a = a-1 print(item) 第二题: (1) k_list = [] v_list=[] for k,v in d.items(): if k not in k_list: k_list.append(k) for i,j in v.items(): if i not in k_list: k_list.append(i) if j not in v_list: v_list.append(j) print(k_list) print(v_list) (2) for k,v in d.items(): print(k,end=' ') for i,j in v.items(): print(i,':',j,end=' ') print() 第三题: for v in d.values(): if v['addr']=='北京': v['house']=10000 第四题: zd={} zd['name'] = input('请输入姓名') zd['age'] = input('请输入年龄') zd['addr'] = input('请输入地址') # zd['addr'] = input('请输入地址') print(zd) 第五题: (1) for v in s.values(): sum = 0 # a=(int(v['物理'])+int(v['化学'])+int(v['语文']))/len(v) # print(a) for i in v.values(): sum += int(i) print('平均分为:%.2f'%(sum/3)) (2) py_score=0 ch_score=0 chinese_score=0 for v in s.values(): py_score+=int(v['物理'])/len(s) ch_score+=int(v['化学'])/len(s) chinese_score+=int(v['语文'])/len(s) print(py_score,'\n',ch_score,'\n',chinese_score)