字典

例题一
 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('我找到这个键了')

(2if infor.get('sex'):###False没有起实质作用
    print('我找个这个键了')

elif infor.get('sex',True):
    infor['sex']=''
print(infor)

(3for 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)

第五题:
(1for 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,'
',ch_score,'
',chinese_score)
原文地址:https://www.cnblogs.com/renshaoqi/p/10182326.html