电子学会青少年编程等级考试Python二级题目解析01

news/2024/7/3 0:51:25

Python二级题目解析

1、题目

原有列表s = [5, 2, 9, 1],下列哪个操作不能使得列表s变为[9, 5, 2, 1]?( )【2021.06】

  • A.
s.sort()
s.reverse()
print(s)
  • B.
s.sort(reverse=True)
print(s)
  • C.
print(sorted(s, reverse=True))
  • D.
s.sort()
print(s)

2、讲解

关注:青少年编程竞赛交流公众号


3、答案

标准答案:D【商榷】

试题解析:

(1)list.sort函数解析

list.sort(key=None, reverse=False):对原列表进行排序。

  • key:指定可迭代对象中的一个元素来进行排序,通常是一个函数。
  • reverse:参数指定以升序(False,默认)还是降序(True)进行排序。
  • 该方法没有返回值,但是会对列表的对象进行排序。

【例子】普通用法

x = [123, 456, 789, 213]
x.sort()
print(x)
# [123, 213, 456, 789]x.sort(reverse=True)
print(x)
# [789, 456, 213, 123]

【例子】制定参数 key 的用法

# 获取列表的第二个元素
def takeSecond(elem):return elem[1]x = [(2, 2), (3, 4), (4, 1), (1, 3)]
x.sort(key=takeSecond)
print(x)
# [(4, 1), (2, 2), (1, 3), (3, 4)]x.sort(key=lambda a: a[0])
print(x)
# [(1, 3), (2, 2), (3, 4), (4, 1)]

(2)sorted函数解析

sorted(iterable, key=None, reverse=False):对所有可迭代的对象iterable进行排序操作,返回重新排序的列表。

  • iterable:可迭代对象。
  • key:指定可迭代对象中的一个元素来进行排序,通常是一个函数。
  • reverse:参数指定以升序(False,默认)还是降序(True)进行排序。
  • 返回重新排序的列表。

【例子】普通用法

x = [-8, 99, 3, 7, 83]
print(sorted(x))  
# [-8, 3, 7, 83, 99]print(sorted(x, reverse=True))  
# [99, 83, 7, 3, -8]

【例子】通过 key 的值来进行数组/字典的排序

t = ({"age": 20, "name": "a"},{"age": 25, "name": "b"},{"age": 10, "name": "c"})
x = sorted(t, key=lambda i: i["age"])
print(x)
# [{'age': 10, 'name': 'c'}, 
# {'age': 20, 'name': 'a'}, 
# {'age': 25, 'name': 'b'}]

【例子】多列排序

d1 = [{'name': 'alice', 'score': 38},{'name': 'bob', 'score': 18},{'name': 'darl', 'score': 28},{'name': 'christ', 'score': 28}]
l = sorted(d1, key=lambda t: (-1*t['score'], t['name']))
print(l)# [{'name': 'alice', 'score': 38},
# {'name': 'christ', 'score': 28},
# {'name': 'darl', 'score': 28},
# {'name': 'bob', 'score': 18}]

【例子】对字符串中的关键字排序

test1 = ['data2/test1/8973.jpg','data2/test1/8974.jpg','data1/test1/8976.jpg','data1/test1/8975.jpg']imgs = sorted(test1, key=lambda x: int(x.split('.')[-2].split('/')[-1]))
print(imgs)
# ['data2/test1/8973.jpg',
# 'data2/test1/8974.jpg',
# 'data1/test1/8975.jpg',
# 'data1/test1/8976.jpg']

(3)sort 与 sorted 区别

  • list.sort()是应用在 list 上的方法,sorted() 可以对所有可迭代的对象进行排序操作。
  • list 的 sort 方法的是对已经存在的列表进行操作,无返回值,而内建函数 sorted 方法返回一个新的 list,而不是在原来的基础上进行的操作。

http://lihuaxi.xjx100.cn/news/250390.html

相关文章

Use MVS Dsbame convensions. windows下ftp.exe客户端上传错误

环境:主机 220-FTPD1 IBM FTP CS V1R11 at BT11 windows下的ftp.exe客户端 现象:windows下ftp.exe命令上传文件,报"Use MVS Dsbame convensions." 错误 原因: 主要是IBM FTP Server 文件系统的命名规范造成的: 8个基本字符 解决: 通过 cd 根目录.目录1.目录2----…

node.js(一)

2019独角兽企业重金招聘Python工程师标准>>> 1.简介 Node.js is a platform built on Chromes JavaScript runtime for easily building fast, scalable network applications. Node.js uses an event-driven, non-blocking I/O model that makes it light…

电子学会青少年编程等级考试Python二级题目解析02

电子学会青少年编程等级考试Python二级题目解析 1、题目 执行下列代码后,运行结果是?( )【2021.06】 seq [hello, good, morning] s *.join(seq) print(s)A. hello*good*morning*B. *hello*good*morningC. hello*good*mornin…

荣之联“云桥OneBridge”让IT运维事半功倍

近日,荣之联发布“云桥OneBridge”新一代的轻量级企业用户账号管理平台,为企业提供账号全生命周期管理解决方案。“云桥OneBridge”让IT运维工作效率大幅提升,并降低人为差错率,IT运维从此事半功倍。 据介绍,北京荣之联…

用herl工具解决微信内链接或二维码可直接用外部浏览器打开

很多朋友问我怎么解决微信内点击链接或扫描二维码可以直接跳出微信在外部浏览器打开网页链接,其实这并不难,只要我们实现微信跳转功能即可。 下面给大家推荐 herl工具(http://www.nicejump.cn/) 使用步骤 1. 用浏览器打开我们的工…

性能优化工具 MVC Mini Profiler

MVC MiniProfiler是Stack Overflow团队设计的一款对ASP.NET MVC、WebForm 以及WCF 的性能分析的小程序。可以对一个页面本身,及该页面通过直接引用、Ajax、Iframe形式访问的其它页面进行监控,监控内容包括数据库内容,并可以显示数据库访问的SQL&#xff…

解析Erlang日志组件lager的lager_transform模块

为什么80%的码农都做不了架构师?>>> 使用 lager 的时候,在编译应用的时候,需要加入选项 {parse_transform, lager_transform} erlc 会在编译你的项目源代码的时候,把生成的 abstract format forms 交给 lager_transfo…

matplotlib画图

import matplotlib.pyplot as plt import numpy as npdef test1():# 从[-1,1]中等距去50个数作为x的取值x np.linspace(-1, 1, 50)print(x)y 2*x 1y1 2**x 1# 第一个是横坐标的值,第二个是纵坐标的值plt.plot(x, y)plt.plot(x, y1)# 必要方法,用于将…