Day 5 - 元组字典习题

2023-11-08

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

stu = {'name': 'xxx', 'age': 18, 'grade': 60, 'tel': 12345678, 'sex': '男/女/不明'}

2.声明一个列表,在列表中保存6个学生的信息(6个题1中的字典)
a.统计不及格学生的个数
b.打印不及格学生的名字和对应的成绩
c.统计未成年学生的个数
d.打印手机尾号是8的学生的名字
e.打印最高分和对应的学生的名字
f.将列表按学生成绩从大到小排序(挣扎一下,不行就放弃)
g.删除性别不明的所有学生

stu_list = [
    {'name': 'a', 'age': 18, 'grade': 60, 'tel': '12345678', 'sex': '男'},
    {'name': 'b', 'age': 20, 'grade': 34, 'tel': '12353634', 'sex': '女'},
    {'name': 'c', 'age': 19, 'grade': 90, 'tel': '13545658', 'sex': '男'},
    {'name': 'd', 'age': 16, 'grade': 78, 'tel': '23543685', 'sex': '不明'},
    {'name': 'e', 'age': 17, 'grade': 13, 'tel': '90584678', 'sex': '男'},
    {'name': 'f', 'age': 19, 'grade': 62, 'tel': '34879778', 'sex': '男'}
]
ungrade_count = 0
teen_count = 0
tel_name = []
max_score = 0
new_list = []
for i in stu_list:
	# 打印不及格学生的名字和对应的成绩
    if i['grade'] < 60:
    	# 统计不及格学生的个数
        ungrade_count += 1
        print('名字:', i['name'],'成绩:', i['grade'])
	
	# 统计未成年学生的个数
    if i['age'] < 18:
        teen_count += 1

	# 打印手机尾号是8的学生的名字
    # print(i['tel'], type(i['tel']))
    if i['tel'][-1] == '8':
        tel_name.append(i['name'])
        # print(i['tel'])
    
    # 打印最高分和对应的学生的名字
    if i['grade'] >= max_score:
        max_score = i['grade']
        max_name = i['name']
    
print('不及格人数:', ungrade_count)
print('未成年人数:', teen_count)
print('号码尾号为8的学生姓名:', tel_name)
print('最高分为:', max_score, '名字为:', max_name)
print('========================================================')

# 将列表按学生成绩从大到小排序
# 高级函数法(了解)
stu_list.sort(key=lambda item:item['grade], reverse=True)
print(stu_list)
print('========================================================')

# 删除性别不明的所有学生
for i in stu_list:
	if i['sex'] == '不明':
        # print(stu_list.index(i))
        del stu_list[stu_list.index(i)]

3.用三个列表表示三门学科的选课学生姓名(一个学生可以同时选多门课)
a. 求选课学生总共有多少人
b. 求只选了第一个学科的人的数量和对应的名字
c. 求只选了一门学科的学生的数量和对应的名字
d. 求只选了两门学科的学生的数量和对应的名字
e. 求选了三门学生的学生的数量和对应的名字

subject_list = {
    # a,b,c...分别代表学生姓名,1,2,3代表课程
    'a': ['1', '2', '3'],
    'b': ['1', '3'],
    'c': ['1', '2'],
    'd': ['3'],
    'e': ['2', '3'],
    'f': ['2', '3']
}
# 求选课学生总共有多少人
print('选课学生人数为:', len(subject_list))

# 求只选了第一个学科的人的数量和对应的名字
count1 = 0
for i in ['a', 'b', 'c', 'd', 'e', 'f']:
    if '1' in subject_list[i]:
        count1 += 1
        print(i)
print('选了1课程的人数为:', count1)

# 求只选了一门学科的学生的数量和对应的名字
one_count = 0
for j in ['a', 'b', 'c', 'd', 'e', 'f']:
    # print(subject_list[j])
    if len(subject_list[j]) == 1:
        one_count += 1
print(j, '选一门课程的人数为:', one_count)

# 求只选了两门学科的学生的数量和对应的名字
two_count = 0
for x in ['a', 'b', 'c', 'd', 'e', 'f']:
    if len(subject_list[x]) == 2:
        two_count += 1
        print(x)
print('选二门课程的人数为:', two_count)

# 求选了三门学生的学生的数量和对应的名字
three_count = 0
for y in ['a', 'b', 'c', 'd', 'e', 'f']:
    if len(subject_list[y]) == 3:
        three_count += 1
        print(y)
print('选三门课程的人数为:', three_count)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Day 5 - 元组字典习题 的相关文章

随机推荐

  • VPN的原理

    VPN Virtual Private Network 指代虚拟私有网络 利用隧道协议 Tunneling Protocol 来达到发送端认证 消息保密与准确性等功能 以 CS 架构运行 可以简单理解 VPN 的实现流程为 由 VPN cl
  • C++ Namespace命名空间和static的用法总结

    Namespaces are used to prevent name conflicts Ways to Use Namespace Identifiers use a qualified name consisting of the n
  • python爬虫——爬取网页中的图片(正则表达式)

    爬取网站 站长之家 网址 辞旧迎新 字体超市携各品牌字体一起来送虎年祝福啦 import requests import re import os if name main 创建一个文件夹 用于保存所有的图片 if not os path
  • 【java连接数据库】idea、MySQL5.7和SQLyog工具

    要求 java连接MySQL数据库 可替换成其他数据库 版本也不一定要和这里完全相同 我只是把我用到的贴上来 不管用什么版本和软件 连接成功即可 所用到的软件和工具如下 1 idea2021 1 2版本 2 mysql5 7 msi版本 安
  • matlab 取数组第一行,matlab中如取数组的矩阵的一行出来成为一个向量?

    答 A 2 意思是取第2行 所有列 答 1 可以通过zeros函数进行赋值 输入a zeros 2 3 生成了一个全0矩阵 如下图所示 2 可以直接使用a 1 3 5方式进行矩阵赋值 a矩阵第1行第3列赋值成5了 如下图所示 3 使用 a
  • 利用Google Colab免费使用GPU服务器详细攻略

    目录 前言 一 Colab限额 提供的GPU类型 二 Colab的使用步骤 如何使用免费GPU资源 1 添加Colaboratory 2 新建Colab 连接GPU 挂载Google Driver 3 项目上传文件并运行 三 快速下载 上传
  • Linux进程编程常用函数详解——vfork()和exec()函数

    vfork 函数原型
  • 如何调试R程序(转载)

    R语言的调试重要性不言而喻 这段时间准备改进一个R的包 但由于接触R时间不长 中间的很多东西不懂 需要重新打包调试 以对里面的很多程序有深入了解 下面从几个方面分享一下我的收获 1 准备工作 a R软件的下载http cran r proj
  • 看完这篇Vue-element-admin,跟面试官聊骚没问题

    Vue element admin vue element admin 是一个后台前端解决方案 它基于 vue 和 element ui实现 它使用了最新的前端技术栈 内置了 i18 国际化解决方案 动态路由 权限验证 提炼了典型的业务模型
  • leetcode算法题--回文数

    原文链接 https leetcode cn com problems palindrome number bool isPalindrome int x if x lt 0 x 10 0 x 0 如何x为负 或者如果x的最后一个数为0 那
  • Go-获取今天、昨天、前天以及指定时间范围的格式化日期的开始和结束的时间戳

    func GetHourTime timeType start end string startTime endTime int64 switch timeType case 1 今天 dateNow time Now startTime
  • Python文件路径操作汇总,获取文件夹下的所有文件路径

    在Python编程过程中 我们常常有这样的需求 需要获取某一个文件目录下的所有文件 或获取文件目录下的所有指定后缀名的文件 亦或要求获取该文件所在的文件夹 还有可能需要替换文件名 删除文件夹 针对这些问题 本文系统总结了这些方法 以供大家参
  • 如何在React中写出有趣的数字滚动动画

    前段时间公司项目需要迭代更新 在这个更新的过程中就添加了一个大数据的数字滚动效果 这让我发现了一个既有趣上手又快的React插件 下面我们看看效果如何 官网的demo https inorganik github io countUp js
  • java中类名一定要和java文件名一致吗?

    结论 首先java中类名不一定要和java文件名一致 是否一致需要分情况 其次java中可以有多个类 但是最多只有一个类的类名和文件名相同 如果一个类被public修饰 那该类的类名必须和文件名相同 并且一个java文件中最多只有一个类被p
  • 学习matlab(十八)——小波分析

    小波分析克服了短时傅里叶变换在单分辨率上的缺陷 具有多分辨率分析的特点 下面对小波分析的基本理论进行介绍 包括连续小波变换 离散小波变换 多分辨分析和小波包分析 最后介绍在小波分析中常用的小波 小波变换采用随频率的时间 频率窗口 是进行信号
  • VC++ 设定Windows程序自启动(非管理员权限)

    Windows程序自启动方式有很多种 任务计划 注册表 启动项等等 创建任务计划和启动项 都需要程序具有管理员权限才能写入 在此略过 只介绍启动项方式 要实现启动项方式 必须要知道当前用户下启动项方式的目录 我们才好将程序或程序的快捷方式存
  • react 首页加载loading

    首页加载loading 放在 root里面 代码如下
  • C语言学习7——文件操作 文件的打开、读写、关闭 文件指针的使用

    关于C语言文件操作方面的知识 主要涉及到以下几个方面 文件的打开和关闭 文件的读写 文件的定位 下面我将详细讲解每个方面 文件的打开和关闭 在C语言中 需要使用fopen 函数来打开一个文件 该函数的原型如下 FILE fopen cons
  • secureCRT设置按钮栏

    secureCRT通过设置按钮栏可以把许多繁琐的命令简化成一个按钮 一步到位提高工作效率 详情如下 1 img http dl2 iteye com upload attachment 0094 3355 9805c794 f8e6 376
  • Day 5 - 元组字典习题

    1 声明一个字典保存一个学生的信息 学生信息中包括 姓名 年龄 成绩 单科 电话 性别 男 女 不明 stu name xxx age 18 grade 60 tel 12345678 sex 男 女 不明 2 声明一个列表 在列表中保存6