-
定义一个变量保存一个学生的信息,学生信心中包括:姓名、年龄、成绩(单科)、电话、性别
student = {'name': '伍旭魁', 'tel': '949678621 ', 'gender': '男', 'age': 25, 'score': 89} print(student) 结果: {'name': '伍旭魁', 'tel': '949678621 ', 'gender': '男', 'age': 25, 'score': 89}
-
定义一个列表,在列表中保存6个学生的信息(学生信息中包括: 姓名、年龄、成绩(单科)、电话、性别(男、女、不明) )
class1 = [ {'name': '伍旭魁1', 'tel': '949678621 ', 'gender': '男', 'age': 23, 'score': 49}, {'name': '伍旭魁2', 'tel': '949678622 ', 'gender': '女', 'age': 25, 'score': 82}, {'name': '伍旭魁3', 'tel': '949678623 ', 'age': 35, 'score': 83}, {'name': '伍旭魁4', 'tel': '949678624 ', 'gender': '男', 'age': 25, 'score': 85}, {'name': '伍旭魁5', 'tel': '949678428 ', 'gender': '男', 'age': 85, 'score': 99}, {'name': '伍旭魁6', 'tel': '949678328 ', 'gender': '女', 'age': 15, 'score': 31} ]
-
统计不及格学生的个数
count = 0 for x in class1: if x ['score'] < 60 : count +=1 print('不及格的人数为%d'%count) 结果: 不及格的人数为2
-
打印不及格未成年学生的名字和对应的成绩
for x in class1: if x ['score'] < 60 : print('%s不及格,分数为:%s'%(x['name'], x['score'])) 结果: 伍旭魁1不及格,分数为:49 伍旭魁6不及格,分数为:31
-
求所有男生的平均年龄
count = 0 count1 = 0 for x in class1: if x ['gender'] == '男' : count += 1 count1 += x['age'] print('男生的平均年纪为:%.2f'%(count1/count)) 结果: 男生的平均年纪为:44.33 打印手机尾号是8的学生的名字
-
#zhe道题当时都有性别,后面改了.所以字典.get就是x.get('gender')
-
count = 0 count1 = 0 for x in class1: a = int(x ['tel']) if a %10 == 8: print('手机尾号为八的同学: ', x['name']) 结果: 手机尾号为八的同学: 伍旭魁5 手机尾号为八的同学: 伍旭魁6
-
打印最高分和对应的学生的名字
count = 0 count1 = len(class1)-1 for i in range(len(class1)-1): if class1[i]['score'] >= class1[i+1]['score']: count =class1[i]['score'] class1[i + 1]['score'] = class1[i]['score'] count1 -= 1 else: count = class1[i+1]['score'] print('%s同学得分最高为: %s'%(class1[count1]['name'], count)) ##可以重新遍历一遍就好了其实 结果: 伍旭魁5同学得分最高为: 99
-
maxscore = class1[0]['score']
names = [class1[0]['name']]
for i in class1[1:]:
if class1[score] > maxscore
max = stu['score']
names.clear
names.append(class1[name])
elif class1[score] == maxscore
names.append(class1[name])
print ..maxscore,names
-
删除性别不明的所有学生
count = 1 count1 = len(class1) i = -1 while i != count1 - count: i += 1 print(i) class1[i].setdefault('gender',1) if class1[i]['gender'] == 1 : del class1[i] count +=1 i -=1 print(class1) print(i) 结果: 0 1 2 2 3 4 [{'name': '伍旭魁1', 'tel': '949678621 ', 'gender': '男', 'age': 23, 'score': 49}, {'name': '伍旭魁2', 'tel': '949678622 ', 'gender': '女', 'age': 25, 'score': 82}, {'name': '伍旭魁4', 'tel': '949678624 ', 'gender': '男', 'age': 25, 'score': 85}, {'name': '伍旭魁5', 'tel': '949678428 ', 'gender': '男', 'age': 85, 'score': 99}, {'name': '伍旭魁6', 'tel': '949678328 ', 'gender': '女', 'age': 15, 'score': 31}] 4
-
将列表按学生成绩从大到小排序(挣扎一下,不行就放弃)
count = [ ' ' ] *len(class1) count1 = [' '] * len(class1) for i in range(len(class1)): count[i] = class1[i]['score'] count.sort(reverse=True) for i in range(len(class1)): for j in range(len(class1)): if count[i] == class1[j]['score']: count1[i] = class1[j] print('学生成绩由大到小排列:',count1) 结果: 学生成绩由大到小排列: [{'name': '伍旭魁5', 'tel': '949678428 ', 'gender': '男', 'age': 85, 'score': 99}, {'name': '伍旭魁4', 'tel': '949678624 ', 'gender': '男', 'age': 25, 'score': 85}, {'name': '伍旭魁3', 'tel': '949678623 ', 'age': 35, 'score': 83}, {'name': '伍旭魁2', 'tel': '949678622 ', 'gender': '女', 'age': 25, 'score': 82}, {'name': '伍旭魁1', 'tel': '949678621 ', 'gender': '男', 'age': 23, 'score': 49}, {'name': '伍旭魁6', 'tel': '949678328 ', 'gender': '女', 'age': 15, 'score': 31}]
-
定义一个变量保存一个班级的信息,班级信息中包括:班级名称、教室位置、班主任信息、讲师信息、班级所有的学生(根据实际情况确定数据类型和具体信息)
class1 = { 'name': 'python', 'address' : '14教师', '班主任': {'name': '舒玲' , 'qq' : '723350822 ', 'gender': '女', 'age': 18 }, '讲师' : {'name': '余婷' , 'qq' : '726550822 ', 'gender': '女', 'age': 18 }, 'student' : [ { 'name': 'wxk' , 'qq' : '949678620 ', 'gender': '男', 'age': 18,'linkman': {'name': 'wgb','tel':187} }, {'name': '伍旭魁', 'qq': '949678621 ', 'gender': '男', 'age': 25, 'linkman': {'name': '伍国兵', 'tel': 133}}, { 'name': 'wx1' , 'qq' : '949678622 ', 'gender': '女', 'age': 28,'linkman': {'name': 'wgb','tel':187} }, { 'name': 'wx2' , 'qq' : '949678622 ', 'gender': '男', 'age': 13,'linkman': {'name': 'wgb','tel':187} }, ]}
-
已知一个列表保存了多个狗对应的字典:
dogs = [ {'name': '贝贝', 'color': '白色', 'breed': '银狐', 'age': 3, 'gender': '母'}, {'name': '花花', 'color': '灰色', 'breed': '法斗', 'age': 2}, {'name': '财财', 'color': '黑色', 'breed': '土狗', 'age': 5, 'gender': '公'}, {'name': '包子', 'color': '黄色', 'breed': '哈士奇', 'age': 1}, {'name': '可乐', 'color': '白色', 'breed': '银狐', 'age': 2}, {'name': '旺财', 'color': '黄色', 'breed': '土狗', 'age': 2, 'gender': '母'} ]
-
利用列表推导式获取所有狗的品种
result = [x['breed'] for x in dogs] print(result) 结果: ['银狐', '法斗', '土狗', '哈士奇', '银狐', '土狗']
利用列表推导式获取所有白色狗的名字
result = [x['name'] for x in dogs if x['color'] == '白色'] print(result) 结果: ['贝贝', '可乐']
给dogs中没有性别的狗添加性别为 '公'
for x in dogs: x.setdefault('gender','公') print(dogs) 结果: [{'name': '贝贝', 'color': '白色', 'breed': '银狐', 'age': 3, 'gender': '母'}, {'name': '花花', 'color': '灰色', 'breed': '法斗', 'age': 2, 'gender': '公'}, {'name': '财财', 'color': '黑色', 'breed': '土狗', 'age': 5, 'gender': '公'}, {'name': '包子', 'color': '黄色', 'breed': '哈士奇', 'age': 1, 'gender': '公'}, {'name': '可乐', 'color': '白色', 'breed': '银狐', 'age': 2, 'gender': '公'}, {'name': '旺财', 'color': '黄色', 'breed': '土狗', 'age': 2, 'gender': '母'}]
-
统计 ‘银狐’ 的数量
for x in dogs: if x['breed'] == '银狐': count += 1 print('银狐数量为:',count) 结果: 银狐数量为: 2
-