-
定义一个列表,在列表中保存6个学生的信息(学生信息中包括: 姓名、年龄、成绩(单科)、电话、性别(男、女、不明) )
class1 = [ {'name': '张三', 'age': 18, 'score': 56, 'tel': '12', 'xb': '男'}, {'name': '李四', 'age': 19, 'score': 89, 'tel': '34', 'xb': '男'}, {'name': '王五', 'age': 17, 'score': 47, 'tel': '56', 'xb': '男'}, {'name': '赵六', 'age': 18, 'score': 70, 'tel': '78', 'xb': '不明'}, {'name': '万红', 'age': 19, 'score': 92, 'tel': '90', 'xb': '女'}, {'name': '孙丽', 'age': 18, 'score': 73, 'tel': '00', 'xb': '女'}, ]
-
统计不及格学生的个数
b = 0 for x in class1: if x['score'] < 60: b += 1 print(b)
-
打印不及格学生的名字和对应的成绩
list1 = [[x['name'], x['score']] for x in class1 if x['score'] < 60] print(list1)
-
打印手机尾号是8的学生的名字
list1 = [x['name'] for x in class1 if x['tel'] % 10 == 8] print(list1)
-
打印最高分和对应的学生的名字
m_score = class1[0]['score'] b = '' for x in class1[1:]: a = x['score'] if a > m_score: m_score = a b = x['name'] print(b, m_score)
-
删除性别不明的所有学生
for y, x in enumerate(class1[0:]): if x['xb'] == '不明': del class1[y] print(class1)
-
将列表按学生成绩从大到小排序(挣扎一下,不行就放弃)
-
-
用三个集合表示三门学科的选课学生姓名(一个学生可以同时选多门课)
tennis = {'张三', '王五', '赵六', '万红'} swimming = {'李四', '赵六', '万红', '孙丽'} basketball = {'张三', '李四', '王五', '孙丽'}
-
求选课学生总共有多少人
print(tennis | swimming | basketball)
-
求只选了第一个学科的人的数量和对应的名字
a = 0 for x in tennis: a += 1 print(x) print(a)
-
求只选了一门学科的学生的数量和对应的名字
a = (tennis | swimming | baskeball) - (tennis & swimming) - (swimming & baskeball) - (tennis & baskeball) print(len(a), a)
-
求只选了两门学科的学生的数量和对应的名字
count =0 a = set() for x in tennis: if (x in swimming and x not in basketball) or (x in basketball and x not in swimming): count+=1 a.add(x) print('只选了两门学科的人数为:',count,'名字有:',a)
-
求选了三门学生的学生的数量和对应的名字
a = tennis & swimming & basketball b = 0 for x in a: b += 1 print('数量', b, '名字', a)
-
05-13
10-04
3211