当前位置: 首页 > news >正文

7.1 大学排行榜分析(project)

 大学排名没有绝对的公正与权威,文件(alumni.txt, soft.txt)中为按照不同评价体系给出的国内大学前100名排行,对比两个排行榜单前m的学校的上榜情况,分析不同排行榜排名的差异。

输入输出

  1. 第一行输入1,第二行输入m,输出在alumni.txtsoft.txt榜单中均在前m个记录的大学,按照学校名称升序。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬

  2. 第一行输入2,第二行输入m,输出在alumni.txt或者soft.txt榜单中前m个记录的所有大学,按照学校名称升序。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬

  3. 第一行输入3,第二行输入m,输出出现在榜单alumni.txt中前m个记录但未出现在榜单soft.txtm个记录中的大学,按照学校名称升序。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬

  4. 第一行输入4,第二行输入m,输出没有同时出现在榜单alumni.txtm个记录和榜单soft.txtm个记录的大学,按照学校名称升序。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬

  5. 第一行输入其他数据,则直接输出Wrong Option

编程要求

根据提示,在右侧编辑器补充代码,分析并输出相应的排名。

测试说明

平台会对你编写的代码进行测试:

测试输入:

  1. 1
  2. 10

预期输出:

  1. 两榜单中均名列前10的学校:
  2. ['上海交通大学', '**大学', '**大学', '**大学', '**大学', '**大学', '**大学', '**大学', '**大学', '**大学']

代码如下:

def read_file(file, m):"""读文件中的学校名到列表中,返回排名前m学校集合"""########## Begin ##########f = open(file, 'r',encoding='utf-8')line1=[]for i in range(m):line=f.readline().strip("\n")line1.append(line.split()[1])#把学校添加列表return line1########## End ##########def either_in_top(alumni, soft):"""接收两个排行榜前m高校名字集合,获得在这两个排行榜中均名列前m的学校名,按照学校名称排序,返回排序后的列表"""########## Begin ##########list2 = []for i in range(len(alumni)):if alumni[i] in soft:  # 如果同时在两个表中都有这个学校list2.append(alumni[i])list2.sort()  # 升序排序return list2########## End ##########def all_in_top(alumni, soft):"""接收两个排行榜前m高校名字集合,获得在两个榜单中名列前m的所有学校名,按照学校名称排序,返回排序后的列表"""########## Begin ##########list3 = []list3.extend(alumni)  # 列表合并alumnilist3.extend(soft)  # 列表合并softlist3 = list(set(list3))  # 列表去重list3.sort()  # 升序排序return list3########## End ##########def only_alumni(alumni, soft):"""接收两个排行榜前10高校名字集合,获得在alumni榜单中名列前10但soft榜单中未进前10的学校名,按照学校名称排序,返回排序后的列表"""########## Begin ##########list4 = []for i in range(len(alumni)):if alumni[i] in soft:continueelse:list4.append(alumni[i])  # 如果在alumni榜单中名列前m但soft榜单中未进前m的学校名list4.sort()  # 升序排序return list4########## End ##########def only_once(alumni, soft):"""接收两个排行榜前10高校名字集合,获得在alumni和soft榜单中名列前10,但不同时出现在两个榜单的学校名,按照学校名称排序,返回排序后的列表"""########## Begin ##########list5 = []for i in range(len(alumni)):if alumni[i] in soft:continueelse:list5.append(alumni[i])  # 如果在alumni榜单中名列前m但soft榜单中未进前m的学校名for i in range(len(soft)):if soft[i] in alumni:continueelse:list5.append(soft[i])  # 如果在soft榜单中名列前m但alumni榜单中未进前m的学校名list5.sort()  # 升序排序return list5########## End ##########def select_first(n):"""接收一个字符判断这个字符是否属于 1234 中的一个字符,如果不是则输出 Wrong Option如果是,则调用 select_again() 函数"""########## Begin ##########if n in '1234':select_again(n)else:print('Wrong Option')########## End ##########def select_again(n):m = int(input())alumni_set = read_file('step1/alumni.txt', m)soft_set = read_file('step1/soft.txt', m)"""接收一个字符按左侧 任务要求->问题描述->输入输出 的规则判断 n ,并吊用上面定义的相应的函数按左侧 任务要求->测试说明->预期输出 的样例进行输出"""########## Begin ##########if n == '1':either_rank = either_in_top(alumni_set, soft_set)print(f'两榜单中均名列前{m}的学校:')print(either_rank)elif n == '2':all_rank = all_in_top(alumni_set, soft_set)print(f'两榜单名列前{m}的所有学校:')print(all_rank)elif n == '3':only_in_alumni_rank = only_alumni(alumni_set, soft_set)print(f'alumni中名列前{m},soft中未进前{m}的学校:')print(only_in_alumni_rank)elif n == '4':alumni_soft_rank = only_once(alumni_set, soft_set)print(f'不同时出现在两个榜单前{m}的学校:')print(alumni_soft_rank)########## End ##########if __name__ == '__main__':n = input()select_first(n)

 

http://www.lryc.cn/news/60454.html

相关文章:

  • TensorFlow 2.0 的新增功能:第三、四部分
  • 第1章 如何听起来像数据科学家
  • 哈希表题目:在系统中查找重复文件
  • 机器人感知与控制关键技术及其智能制造应用
  • 精通线程池,看这一篇就够了
  • 解决图片、视频地址加密问题
  • GPT引领学习之旅:一篇让程序员轻松掌握Elasticsearch的攻略
  • 23种设计模式-仲裁者模式(Android应用场景介绍)
  • 【数据统计】— 极大似然估计 MLE、最大后验估计 MAP、贝叶斯估计
  • Zookeeper学习笔记
  • go语言切片做函数参数传递+append()函数扩容
  • 2023.04.16 学习周报
  • 【面试】如何设计SaaS产品的数据权限?
  • ansible管理变量
  • 一种轻量级日志采集解决方案
  • 【源码】Spring Cloud Gateway 是在哪里匹配路由的?
  • BAT批处理基本命令
  • Python数组仿射变换
  • “==“和equals方法究竟有什么区别?
  • 蓝桥杯15单片机--超声波模块
  • 【学习笔记】ARC159
  • 2023/4/16总结
  • 【剑指offer】常用的数据增强的方法
  • /lib/lsb/init-functions文件解析
  • 【ChatGPT】ChatGPT-5 强到什么地步?
  • [ARM+Linux] 基于全志h616外设开发笔记
  • 如何实现24小时客户服务
  • 查询数据库空间(mysql和oracle)
  • 为什么 SQLite 一定要用 C 语言来开发?
  • TensorFlow Lite,ML Kit 和 Flutter 移动深度学习:6~11