7.1 大学排行榜分析(project)

2023-11-19

 大学排名没有绝对的公正与权威,文件(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)  # 列表合并alumni
    list3.extend(soft)  # 列表合并soft
    list3 = 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:
            continue
        else:
            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:
            continue
        else:
            list5.append(alumni[i])  # 如果在alumni榜单中名列前m但soft榜单中未进前m的学校名
    for i in range(len(soft)):
        if soft[i] in alumni:
            continue
        else:
            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)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

7.1 大学排行榜分析(project) 的相关文章

  • pydev 断点不起作用

    我正在使用 python 2 7 2 sqlalchemy 0 7 unittest eclipse 3 7 2 和 pydev 2 4 开发一个项目 我在 python 文件 单元测 试文件 中设置断点 但它们被完全忽略 之前 在某些时候
  • 在 Python 中,部分函数应用(柯里化)与显式函数定义

    在 Python 中 以下方式是否被认为是更好的风格 根据更一般的 可能是内部使用的功能显式定义有用的功能 或者 使用偏函数应用来显式描述函数柯里化 我将通过一个人为的例子来解释我的问题 假设编写一个函数 sort by scoring 它
  • 在 Python 中同时插入行

    我正在尝试对我的代码进行矢量化 但遇到了障碍 我有 nxd x 值数组 x1 xn 其中每一行 x1 有很多点 x11 x1d nxd y 值数组 y1 y2 y3 其中每一行 y1 有很多点 y11 y1d x 值的 nx1 数组 x 1
  • 如何将人物传奇带到前台?

    我有一系列子图 其中每个子图都有一个图例 我想在每个子图之外与相邻子图重叠 问题在于图例位于其自己的图的 顶部 但位于相邻图的下方 Legend 不将 zorder 作为参数 所以我不知道如何解决这个问题 这是我使用过的代码 import
  • self.__dict__.update(**kwargs) 的风格是好是坏?

    在 Python 中 假设我有一些类 Circle 它继承自 Shape Shape 需要 x 和 y 坐标 此外 Circle 需要半径 我希望能够通过执行类似的操作来初始化 Circle c Circle x 1 y 5 r 3 Cir
  • 按字符串子字符串的列过滤 Pandas 数据框

    我正在尝试使用列中的字符串值是数据框外部字符串的子字符串的条件来过滤数据框 下面的例子 df a b c hello bye hello reference str hello there output a c 一种方法可能是使用正则表达式
  • Pygooglevoice登录错误

    另一个人问了这个问题 但没有回复 所以我再问一遍 我正在尝试使用 pygooglevoice API 但是当我运行 SMS py 示例脚本时 它给了我一个登录错误 我已经安装了 Enthought python 我想也许我还需要安装其他东西
  • 为什么最简单的 requests_mock 示例在 pytest 中失败?

    我有一个特殊的问题requests mock 我想用它pytest测试我的 API 包装器库 我尝试过使用requests mock 文档中的第一个示例 http requests mock readthedocs io en latest
  • 从网站上抓取数字和详细信息的数据

    我想从网站上抓取联系电话以及快递服务的相应详细信息 我无法从所有快递服务中获取联系电话和其他详细信息 例如姓名地址和评级 我分析的数据位于脚本标签中 请提出修复此问题的建议 import requests import pandas as
  • t /= d 是什么意思? Python 和错误

    t current time b begInnIng value c change In value d duration def easeOutQuad swing function x t b c d alert jQuery easi
  • 导入我自己的模块时出现“ImportError:没有名为...的模块”

    我正在尝试导入模块 但不断收到导入错误 在 PortfolioStatus py 文件中 我有以下代码 它从 share data py 模块导入 share data 类 from Shares share data import sha
  • 收到“/:未找到事件。”使用 PyCharm 远程调试器时

    当我使用 PyCharm 通过 ssh 进行远程调试时tcsh shell 服务器 很多时候它停止工作 并显示 未找到事件 更具体地说 我在 pycharm 调试控制台中遇到以下内容 ssh username hostserver 22 p
  • 枚举上的 random.choice

    我想用random choice on an Enum I tried class Foo Enum a 0 b 1 c 2 bar random choice Foo 但是这段代码失败了KeyError 我怎样才能随机选择一个成员Enum
  • 如何使用资源模块来衡量函数的运行时间?

    我想使用Python代码测量函数的CPU运行时间和挂钟运行时间 此处建议资源模块 如何以 Python 代码 不是从终端 的形式分别测量函数的 CPU 运行时间和挂钟运行时间 https stackoverflow com q 192046
  • Python 包安装:pip 与 yum,还是两者一起安装?

    我刚刚开始管理 Hadoop 集群 我们使用 Bright Cluster Manager 直至操作系统级别 CentOS 7 1 然后使用 Ambari 以及适用于 Hadoop 的 Hortonworks HDP 2 3 我不断收到安装
  • Pandas:按日历周分组,然后绘制真实日期时间的分组条形图

    EDIT 我找到了一个非常好的解决方案并将其发布在下面作为答案 结果将如下所示 您可以为此问题生成一些示例数据 codes list ABCDEFGH dates pd Series pd date range 2013 11 01 201
  • PyMC3 和 Theano - 导入 pymc3 后,有效的 Theano 代码停止工作

    一些简单的 theano 代码可以完美运行 当我导入 pymc3 时停止工作 这里有一些片段可以重现错误 Initial Theano Code this works import theano tensor as tsr x tsr ds
  • 将同一 numpy 数组的两个视图组合成单个视图而不复制数组?

    我有一个大型 2d numpy 数组 我想删除它的子集并处理函数剩下的内容 我需要对许多子集执行此操作 因此理想情况下我不想每次都创建数组的副本 该函数不会更改数组中的任何值 mat np load filename mat 1 mat i
  • Python Web 编程的不同方法的优缺点

    我想使用 Python 编写一些服务器端脚本 但我对这样做的方法有点迷失了 它从 DIY CGI 方法开始 似乎以一些相当强大的框架结束 这些框架基本上可以自己完成所有工作 中间有很多东西 比如web py http webpy org P
  • 真实值与预测值的降维可视化

    我有一个数据框 如下所示 label predicted F1 F2 F3 F40 major minor 2 1 4 major major 1 0 10 minor patch 4 3 23 major patch 2 1 11 min

随机推荐

  • 时序预测

    时序预测 MATLAB实现DNN深度神经网络时间序列预测未来 多指标 多图输出 目录 时序预测 MATLAB实现DNN深度神经网络时间序列预测未来 多指标 多图输出 预测效果 基本介绍 模型结构 程序设计 学习总结 预测效果 lt
  • CentOS7.3下载,CentOS7.3 iso下载

    原网站 http man linuxde net download CentOS 7 3 当前位置 首页 CentOS CentOS7 3下载 CentOS7 3 iso下载 CentOS 7 3 是CentOS 7系列的第四个发行版本 官
  • linux设置pg库开机自启

    要在Linux系统上设置PostgreSQL数据库开机自启 可以按照以下步骤操作 打开终端并使用root权限登录系统 编辑 etc rc local 文件 sudo vi etc rc local 在文件的最后一行添加以下内容 su pos
  • Ubuntu 安装 Tensorflow-gpu 与 Keras

    为深度学习所用 博主预想在Ubuntu16 04上安装 显卡驱动 CUDA cuDNN Tensorflow gpu Keras PyCharm 参考了众多资料 最终成功将所有软件安装完毕 且能成功运行使用 该篇博客介绍了Tensorflo
  • matlab求二元函数极值算法_高等数学下册(部分)复习——知识点:多元函数微分方法及其应用...

    空间解析几何与向量代数的部分就不说了 比较简单 以几道例题练一练就差不多了 首先从第九章 多元函数微分方法及其应用说起 01 多元微分 理论 要学习多元 我们首先要从一元开始 一元的学会了 就能够类比得到多元的结论 在理论部分 首先要介绍一
  • WIN10系统MYSQL的下载与安装详细教程

    前两天ubuntu下安装mysql遇到了一些依赖问题 结果解决了半天 没解决好 还把我的系统搞坏了 小白破坏力好强 到现在我的ubuntu也没装好 电脑驱动的问题 联想小新310一装ubuntu 进去就卡 原来禁用原先的显卡驱动 可是 第二
  • win10 Enable developer Mode

    经过漫长的安装过程 win10终于装上了vs2015 rc 写个小程序试试 结果提示 根据提示打开 设置 更新 for developer 据说应该有这么个界面 但是这个界面根本出不来 直接闪退的说 翻 MSDN 终于翻出了解决方法 htt
  • ChatGPT启示录: 智能、推理的本质是什么?神经网络既是推理机,也是知识规则库?

    多种因素让人类对自身的智力产生了一种自信 毕竟这个世界上其他生物没有我们大脑发达 智力似乎是上天给人类的独有礼物 作为孩子的父母 老师说孩子不努力似乎是可以接受的 但是说自己娃娃笨是极其羞辱的 类似的 让很多人不能接受的是 机器人可以算得比
  • 学习笔记(三):Java中的List集合——ArrayList、LinkedList、Vector、Stack、CopyOnWriteArrayList

    目录 引言 一 List简介 二 常用List实现类 一 ArrayList 二 LinkedList 三 LinkedList和ArrayList的比较 三 其他List实现类 一 Vector 二 Stack 三 CopyOnWrite
  • Java安装、Java环境配置,以及我的第一个Java程序(win11)

    Java环境配置 下载OpenJDK Windows11 1 进入Oracle Java Downloads 2 下载 ZIP文件 3 解压到适合的位置 注意 路径最好是英文字母 配置环境变量 1 Win I打开系统设置 2 下拉到最底下选
  • vuejs 制作摄像头_VueJs的网络摄像头组件

    vuejs 制作摄像头 网络摄像头 vue web cam Webcam component for VueJs VueJs的网络摄像头组件 安装 Installation npm install vue web cam save yarn
  • 【Python】python logging模块打印log到指定文件

    可能我们经常会使用print来输出信息到窗口 但当我们有很多个py文件需要运行 项目比 较庞大的到时候 print简直就是太low了点了 那么我们可以使用强大的logging模块 把 输出到指定的本地pc某个路径的文件中 一 logging
  • 把字符串转换成整数(字符串)

    题目描述 将一个字符串转换成一个整数 要求不能使用字符串转换整数的库函数 数值为0或者字符串不是一个合法的数值则返回0 输入描述 输入一个字符串 包括数字字母符号 可以为空 输出描述 如果是合法的数值表达则返回该数字 否则返回0 思路一 p
  • 什么是体素(Voxel)

    复制粘贴的知乎 题图中是3D数据的不同表示类型 a 点云 Point clouds b 体素网格 Voxel grids 多边形网格 Polygon meshes d 多视图表示 Multi view representations 其中
  • 超参数选择:网格搜索GridSearchCV

    Grid Search 网格搜索 在所有候选的参数选择中 通过循环遍历 对每一种可能的参数在训练集上训练一个模型 在测试集上表现最好的参数就是最优的参数 模型最终的表现好坏与初始数据训练集和测试集的划分有很大的关系 测试集数据没有被训练 可
  • javaweb 解出与svn 服务器的绑定。

    情况描述 今天在上传项目时 误传项目的上传路径 解决办法 先移除在VisualSVN Server服务器上的相关目录 在客户端移除项目与VisualSVN Server的绑定关系 示例截图 第一步 断开与svn 服务器连接 第二步 清除sv
  • python中 for i in range(10)_Python for i in range ()用法详解

    for i in range 作用 range 是一个函数 for i in range 就是给i赋值 比如 for i in range 1 3 就是把1 2依次赋值给i range 函数的使用是这样的 range start stop
  • 树莓派学习(三):安装pytorch并验证

    树莓派学习 三 安装pytorch并验证标题 步骤一 创建一个虚拟环境 步骤二 安装pythorch 步骤三 测试 彩蛋 步骤一 创建一个虚拟环境 conda create name pytorchcpu python 3 9 10 如果需
  • java中null和isEmpty的区别

    isEmpty 分配了内存空间 值为空 是绝对的空 里面的值为空 分配了内存空间 值为空字符串 是相对的空 里面的值为空 null 未分配内存空间 没有值 是一种无值 值不存在 结论 null只能分辨出值是否分配内存空间 isEmpty不能
  • 7.1 大学排行榜分析(project)

    大学排名没有绝对的公正与权威 文件 alumni txt soft txt 中为按照不同评价体系给出的国内大学前100名排行 对比两个排行榜单前m的学校的上榜情况 分析不同排行榜排名的差异 输入输出 第一行输入1 第二行输入m 输出在alu