热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

pythonsorted()与input()

以一道题目为例,题目名为最高分是多少题目描述老师想知道从某某同学当中,分数最高的是多少,现在请你编程模拟老师的询问。当然,

以一道题目为例,题目名为 最高分是多少

题目描述

老师想知道从某某同学当中,分数最高的是多少,现在请你编程模拟老师的询问。当然,老师有时候需要更新某位同学的成绩.

输入描述:

输入包括多组测试数据。
每组输入第一行是两个正整数N和M(0 学生ID编号从1编到N。
第二行包含N个整数,代表这N个学生的初始成绩,其中第i个数代表ID为i的学生的成绩
接下来又M行,每一行有一个字符C(只取‘Q’或‘U’),和两个正整数A,B,当C为'Q'的时候, 表示这是一条询问操作,他询问ID从A到B(包括A,B)的学生当中,成绩最高的是多少
当C为‘U’的时候,表示这是一条更新操作,要求把ID为A的学生的成绩更改为B。

输出描述:

对于每一次询问操作,在一行里面输出最高成绩.

示例1

输入

5 7
1 2 3 4 5
Q 1 5
U 3 6
Q 3 4
Q 4 5
U 4 5
U 2 9
Q 1 5

输出

5
6
5
9

注意此处所用为python3 

while True :#可能不止一次输入try :n , m = map(int,input().split())data = list(map(int,input().split()))for i in range(m) :command = input().split()if command[0] == 'Q' :#start , end = sorted(int(command[1],int(command[2])))start , end = sorted([int(command[1]),int(command[2])])#输入的A未必小于Bmax_grade = max(data[start-1:end])#使用max即可获取最大值print(max_grade)else :data[int(command[1])-1] = int(command[2])except :break

sort 与 sorted 区别:

  1. sort 是应用在 list 上的方法,属于列表的成员方法,sorted 可以对所有可迭代的对象进行排序操作。
  2. list 的 sort 方法是对已经存在的列表进行操作,本身不返回任何值,而内建函数 sorted 方法返回的是一个新的 list,而不是在原来的基础上进行的操作。
  3. sort使用方法为ls.sort(),而sorted使用方法为sorted(ls)

sorted 语法:

sorted(iterable, cmp=None, key=None, reverse=False)

参数说明:

  • iterable -- 可迭代对象。(必须要有)
  • cmp -- 比较的函数,这个具有两个参数,参数的值都是从可迭代对象中取出,此函数必须遵守的规则为,大于则返回1,小于则返回-1,等于则返回0。(非必须)
  • key -- 主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序。(非必须)
  • reverse -- 排序规则,reverse = True 降序 , reverse = False 升序(默认)。(非必须)

一开始我像上面那段代码中注释掉的那段代码那样运用sorted,结果报错,然后在命令窗口测试

发现sorted可迭代对象只能 有一个,所以我改为了start , end = sorted([int(command[1]),int(command[2])]),可以发现我在相应位置加了一对中括号,由于sorted 可以对所有可迭代的对象进行排序操作所以你将加的中括号换为括号也是可以的start , end = sorted((int(command[1]),int(command[2]))),改为花括号‘{’却不行,可以想想为什么?

这里讲的是python3中的input():

Python3.x 中 input() 函数接受一个标准输入数据,返回为 string 类型。

注意:在 Python3.x 中 raw_input() 和 input() 进行了整合,去除了 raw_input( ),仅保留了input( )函数,其接收任意任性输入,将所有输入默认为字符串处理,并返回字符串类型。

可以发现上面代码中,n , m = map(int,input().split())中运用了map是因为需要将输入的数据类型转换为int型(空格分割输入),而data = list(map(int,input().split()))不仅需要将输入的数据类型转换为int型,而且需要将其放到一个列表中。 因为input() 函数接受一个标准输入数据,返回为 string 类型,所以command = input().split()获得的是一个字符数组。

关于Python2.x 和 Python3.x 中 raw_input( ) 和 input( ) 区别可以参考这个链接:

https://www.runoob.com/w3cnote/python2-python3-raw_input-and-input.html

 

 

 


推荐阅读
  • 2022年Python面试题一.Python基础二.企业面试题结束语🥇🥇🥇✅作者简介:大家好我是编程IDὌ ... [详细]
  • pypy 真的能让 Python 比 C 还快么?
    作者:肖恩顿来源:游戏不存在最近“pypy为什么能让python比c还快”刷屏了,原文讲的内容偏理论,干货比较少。我们可以再深入一点点,了解pypy的真相。正式开始之前,多唠叨两句 ... [详细]
  • 开发笔记:python协程的理解
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了python协程的理解相关的知识,希望对你有一定的参考价值。一、介绍什么是并发?并发的本质就是 ... [详细]
  • OBS Studio自动化实践:利用脚本批量生成录制场景
    本文探讨了如何利用OBS Studio进行高效录屏,并通过脚本实现场景的自动生成。适合对自动化办公感兴趣的读者。 ... [详细]
  • 本文介绍如何使用JavaScript中的for循环来创建一个九九乘法表,适合初学者学习循环结构的应用。 ... [详细]
  • 本文详细介绍了HashSet类,它是Set接口的一个实现,底层使用哈希表(实际上是HashMap实例)。HashSet不保证元素的迭代顺序,并且是非线程安全的。 ... [详细]
  • 本文介绍如何通过参数化查询来防止SQL注入攻击,确保数据库的安全性。示例代码展示了在C#中使用参数化查询添加学生信息的方法。 ... [详细]
  • 本文详细记录了 MIT 6.824 课程中 MapReduce 实验的开发过程,包括环境搭建、实验步骤和具体实现方法。 ... [详细]
  • 在Python中,可以通过导入 `this` 模块来优雅地展示“Python之禅”这一编程哲学。该模块会将这些指导原则以一种美观的方式输出到控制台。为了增加趣味性,可以考虑在代码中对输出内容进行简单的加密或混淆处理,以提升用户体验。 ... [详细]
  • 这是一个愚蠢的问题,但我只是对此感到好奇.假设我在Pythonshell,我有一些我查询的数据库对象.我做:db.query(的queryString)该查询在0xffdf842c ... [详细]
  • 字符串中特定模式出现次数的计算方法
    本文详细探讨了如何高效地计算字符串中特定模式(如'pat')的出现次数,通过实例分析与算法解析,帮助读者掌握解决此类问题的方法。 ... [详细]
  • 本文深入探讨了Go语言中的接口型函数,通过实例分析其灵活性和强大功能,帮助开发者更好地理解和运用这一特性。 ... [详细]
  • Go从入门到精通系列视频之go编程语言密码学哈希算法(二) ... [详细]
  • 基于PythonOCC库,本文探讨了如何实现对曲线边(TopoDS_Edge)进行等间距周长分割的分析方法及其应用。通过使用BRepGProp模块中的线性属性计算功能,我们能够精确地将曲线分割成多个等长段,从而为后续的几何建模和工程应用提供基础支持。该方法不仅提高了曲线处理的效率,还增强了模型的准确性和可靠性。 ... [详细]
  • 开发笔记:Python之路第一篇:初识Python
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了Python之路第一篇:初识Python相关的知识,希望对你有一定的参考价值。Python简介& ... [详细]
author-avatar
fffas2010_734_196
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有