声明一个字典保存一个学生的信息,学生信息中包括: 姓名、年龄、成绩(单科)、电话、性别(男、女、不明)

1.声明一个字典保存一个学生的信息,学生信息中包括: 姓名、年龄、成绩(单科)、电话、性别(男、女、不明)。

dict1 = {'name':'a','age':18,'score':99,'nums':15264855565,'gender':'男'} 

2.声明一个列表,在列表中保存6个学生的信息(6个题1中的字典)

list1 = [
    {'name': '大一', 'age': 18, 'score': 99, 'tel': 15166555268, 'gender': '男'},
    {'name': '小二', 'age': 16, 'score': 80, 'tel': 16588922166, 'gender': '不明'},
    {'name': '张三', 'age': 22, 'score': 36, 'tel': 12454424266, 'gender': '女'},
    {'name': '李四', 'age': 23, 'score': 26, 'tel': 14255222458, 'gender': '不明'},
    {'name': '王五', 'age': 19, 'score': 95, 'tel': 16245542528, 'gender': '女'},
    {'name': '赵六', 'age': 15, 'score': 88, 'tel': 16154254258, 'gender': '男'}
]

(1) 统计不及格学生的个数

(2) 打印不及格学生的名字和对应的成绩

t1 = 0
for list2 in list1:
    # print(list2)
    # print(list2['score'])
    # print(list2['nums'])
    # print(list2['score'])
    if list2['score'] < 60:  #统计不及格学生的信息
        t1 += 1
        print('不及格的学生名字和成绩',list2['name'],":",list2['score'])
print('不及格的学生个数:',t1)

(3) 统计未成年学生的个数

t3 = 0
for list2 in list1:
    if list2['age'] < 18:
        t3 += 1
print('未成年学生的人数',t3)
# print(f'未成年人数:{t3}')

(4) 打印手机尾号是8的学生的名字

for list2 in list1:
    if list2['tel']%10 == 8:
    # if list2['tel'][-1] == '8':#电话号码是字符串'13212345678'
        print('手机尾号是8的学生的名字:',list2['name'])
        # print(f"手机尾号是8得学生得名字:{list2['name']}")

(5) 打印最高分和对应的学生的名字

max1 = 0
for list2 in list1:
    if list2['score'] > max1:
        max1 = list2['score']
        name = list2['name']
print(name)

#法二
num = {'name':''}
max_score = list1[0]['score']
for x in list1[1:]:
    if x['score'] > max_score:
        max_score = x['score']
        num['name'] = x['name']
print('最高分的学生:',max_score,num['name'])

(6) 删除性别不明的所有学生

#######1.6  法一
for i in list1[:]:
    if i['gender'] == '不明':
        list1.remove(i)
        print(i)
print(list1)

#####1.6  法二
i = 0
while i <len(list1):
    if list1[i]['gender'] == '不明':
        list1.remove(list1[i])
        i -= 1
    i += 1
print(list1)

######1.6   法三

res = [x for x in list1 if x['gender'] != '不明']
print(res)

######1.6 法四
## (5,-1,-1)

for x in range(len(list1)-1,-1,-1):  #543210
    if list1[x]['gender'] == '不明':
        list1.remove(list1[x])
print(list1)

(7) 将列表按学生成绩从大到小排序

for i in range(len(list1)):
    for j in range(len(list1)-1-i):
        if list1[j]['score'] <list1[j+1]['score']:
            list1[j],list1[j+1]= list1[j+1],list1[j]
print(list1)
  • 7
    点赞
  • 53
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值