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

Python内置函数 — sort,sorted

1、sort

列表的属性方法,对列表进行排序,默认升序,返回None值。

源码注释:

"""
Sort the list in ascending order and return None.The sort is in-place (i.e. the list itself is modified) and stable (i.e. the
order of two equal elements is maintained).If a key function is given, apply it once to each list item and sort them,
ascending or descending, according to their function values.The reverse flag can be set to sort in descending order.
"""

说明:

按升序排序列表并返回None。

排序到位(即列表本身被修改)且稳定(即保持两个相等元素的顺序)。

如果给定了键函数,则将其应用于每个列表项一次,并根据其函数值对其进行升序或降序排序。

反转标志可以设置为按降序排序。

语法结构:

list.sort(key=None, reverse=False)

参数:

  • key,可选参数,默认值为None。如果key有值,则按照key的函数规则对列表进行排序,可以用来自定义排序规则。
  • reverse,可选参数,排序规则,reverse = True 降序 , reverse = False 升序(默认)

返回值:

  • 返回 None值,原列表的元素排序发生改变。

用法实例:

(1)升序排序(默认升序)

lst = [1, 4, 5, 3, 2]
lst.sort()
print(lst)
-------------------------------------------------------------------------------------
运行结果:
[1, 2, 3, 4, 5]

(2)降序排序

lst = [1, 3, 4, 2, 5]
lst.sort(reverse=True)
print(lst)
---------------------------------------------------------------------------------
运行结果:
[5, 4, 3, 2, 1]

(3)使用key自定义排序

lst = [[1, 2], [3, 4], [4, 1], [2, 3]]
lst.sort()
print(lst)
------------------------------------------------------------------------------------
运行结果:
[[1, 2], [2, 3], [3, 4], [4, 1]]

说明:默认是根据二维列表的第一个元素升序排序,下面我们来使用key这个参数来实现根据二维列表的第二个元素排序。

lst = [[1, 2], [3, 4], [4, 1], [2, 3]]
lst.sort(key=lambda x: x[1])
print(lst)
-----------------------------------------------------------------------------------
运行结果:
[[4, 1], [1, 2], [2, 3], [3, 4]]

2、sorted

Python内置函数,对可迭代对象进行排序,默认升序,返回一个新的列表。

源码注释:

"""
Return a new list containing all items from the iterable in ascending order.A custom key function can be supplied to customize the sort order, and the
reverse flag can be set to request the result in descending order.
"""

说明:

返回一个新列表,其中按升序包含可迭代项中的所有项。

可以提供自定义键函数来自定义排序顺序,并且可以设置反转标志以请求按降序排序的结果。

语法格式:

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

参数:

  • iterable,可迭代对象
  • key,可选参数,默认值为None。如果key有值,则按照key的函数规则对列表进行排序,可以用来自定义排序规则。
  • reverse,可选参数,排序规则,reverse = True 降序 , reverse = False 升序(默认)

返回值:

  • 返回一个新的列表

用法实例:

(1)升序排序(默认排序)

a = [1, 4, 5, 3, 2]
b = sorted(a)
print('a=', a)
print('b=', b)
------------------------------------------------------------------------------------
运行结果:
a= [1, 4, 5, 3, 2]
b= [1, 2, 3, 4, 5]

sorted函数没有改变原列表a,按照升序排序生成了一个新的列表b 。

(2)降序排序

a = [1, 4, 5, 3, 2]
b = sorted(a, reverse=True)
print('a=', a)
print('b=', b)
---------------------------------------------------------------------------------
运行结果:
a= [1, 4, 5, 3, 2]
b= [5, 4, 3, 2, 1]

(3)使用key自定义排序

lst = [('b', 2), ('a', 1), ('d', 4), ('c', 3)]
lst_new = sorted(lst, key=lambda x: x[1], reverse=True)
print('lst=', lst)
print('lst_new=', lst_new)
-------------------------------------------------------------------------------------
运行结果:
lst= [('b', 2), ('a', 1), ('d', 4), ('c', 3)]
lst_new= [('d', 4), ('c', 3), ('b', 2), ('a', 1)]

3、sort和sorted的区别

  • sort函数是列表的属性方法,sorted是Python的内置函数。
  • sort函数是对原列表的元素进行排序,sorted函数是对可迭代对象的元素进行排序,生成一个新列表。


reference:

https://docs.python.org/zh-cn/3.8/library/functions.html#sorted

python中sort()函数的key参数用法__小张要敲代码的博客-CSDN博客_sort函数python key

Python3 sorted() 函数 | 菜鸟教程

相关文章:

Python内置函数 — sort,sorted

1、sort 列表的属性方法,对列表进行排序,默认升序,返回None值。 源码注释: """ Sort the list in ascending order and return None.The sort is in-place (i.e. the list itself is modified) and stable (i.e.…...

mysql事务隔离级别

mysql锁机制及原理1.隔离级别2.实践2.1查看事务隔离级别2.2 设置隔离级别2.3 不可重复读2.4 幻读3.幻读怎么解决3.1 Record Lock3.2 Gap Lock3.3 Next-Key Lock引用:https://blog.csdn.net/xinyuan_java/article/details/1284932051.隔离级别 SERIALIZABLE(序列化)…...

【C++】string类(下)

文章目录1.迭代器(正向遍历)begin有两个版本2.反向迭代器(反向遍历)rbegin由两个版本3. at4. insert ——头插在pos位置前插入一个字符串在pos位置前插入n个字符在迭代器前插入一个字符5. erase从pos位置开始删除len个字符从迭代器位置开始删除6. replace——替换从pos位置开始…...

Elasticsearch: Prefix queries - 前缀查询

Prefix queries 被用于在查询时返回在提供的字段中包含特定前缀的文档。有时我们可能想使用前缀查询单词,例如 Leonardo 的 Leo 或 Marlon Brando、Mark Hamill 或 Martin Balsam 的 Mar。 Elasticsearch 提供了一个前缀查询,用于获取匹配单词开头部分&a…...

GEE学习笔记 七十七:GEE学习方法简介

这是一篇关于学习方法的思考探索,当然我不会大篇文章介绍什么学习方法(因为我也不是这方面的专家?),这个只是总结一下我是如何学习GEE以及在学习中遇到问题时如何解决问题的。我写这篇文章的目的就是在和一些学习GEE的新同学接触…...

20基于主从博弈的智能小区代理商定价策略及电动汽车充电管理MATLAB程序

参考文档:《基于主从博弈的智能小区代理商定价策略及电动汽车充电管理》基本复现仿真平台:MATLABCPLEX/gurobi平台优势:代码具有一定的深度和创新性,注释清晰,非烂大街的代码,非常精品!主要内容…...

长按power键,点击重启按钮,系统重启流程一

1.有可能会涉及到如下文件 2.文件流程...

数据的TCP分段和IP分片

本文简述下TCP分段和IP分片的区别与联系。 我们知道,用户空间的数据拷贝到内核空间的TCP发送缓冲区(这个是一个结构体,叫sk_buffer,简称skb)后就由内核网络协议栈做后续的封装和发送处理了,用户无需考虑下…...

HTML中嵌入B站视频

HTML中嵌入B站视频 在网页中实现一个HTML播放器需要先从b站获取视频嵌入代码, 以前嵌入代码可以从视频分享那里拿到, 现在好像不行了 必须是自己投稿的视频, 从投稿管理页面才能找到 复制嵌入代码 建一个.html文件, 放入下面代码 <!DOCTYPE html> <html><head…...

Mars3D Studio 的使用方法

Mars3D Studio的使用 1、介绍&#xff1a; mars3d Studio是mars3d研发团队于近期研发上线的一款 场景可视化编辑平台。拥有资源存档、团队协作、定制材质等丰富的功能。可以实现零代码构建一个可视化三维场景。 2、功能介绍 &#xff08;1&#xff09;数据上传&#xff1a…...

Flutter For Web实践

1 什么是Flutter Flutter是Google开源的一套UI工具包&#xff0c;帮助开发者通过一套代码库高效构建多平台精美应用&#xff0c;支持移动APP、web、桌面和嵌入式平台。Flutter和其他的跨平台解决方案的实现方式上有比较大的差异。 我们以React Native&#xff08;下文简称RN&…...

【神级Python代码】作为技术xiao白如何制作一款超炫酷的黑客主题代码雨?牛逼就完了。(源码分享学习)

前言 哈喽&#xff0c;我是木子&#xff0c;今天给大家制作一款超级炫酷的代码啦。 提到《黑K帝国》&#xff0c;字符雨可谓是让人印象深刻。 所有文章完整的素材源码都在&#x1f447;&#x1f447; 粉丝白嫖源码福利&#xff0c;请移步至CSDN社区或文末公众hao即可免费。 ​…...

供应链挑战迎刃而解!桑迪亚国家实验室使出“量子杀手锏”

桑迪亚国家实验室的科学家Alicia Magann&#xff08;右&#xff09;&#xff0c;Kenneth Rudinger&#xff08;左上&#xff09;&#xff0c;Mohan Sarovar&#xff08;左下&#xff09;和Matthew Grace&#xff08;未附图&#xff09;开发了基于反馈的量子优化算法&#xff08…...

java程序设计-ssm博客管理系统

博客管理系统是一个用于创建、管理和发布博客文章的应用程序。它通常包括一个后台管理界面&#xff0c;用于管理用户、文章、评论、标签等数据。同时&#xff0c;它还包括一个前端界面&#xff0c;用于展示博客文章并提供交互功能&#xff0c;例如评论和分享。 博客管理系统可…...

从0到1一步一步玩转openEuler--17 openEuler DNF(YUM)检查更新

文章目录17.1 检查更新17.2 升级17.3 更新所有的包和它们的依赖DNF是一款Linux软件包管理工具&#xff0c;用于管理RPM软件包。DNF可以查询软件包信息&#xff0c;从指定软件库获取软件包&#xff0c;自动处理依赖关系以安装或卸载软件包&#xff0c;以及更新系统到最新可用版本…...

SpringBoot-自动配置-@Import注解与@EnableAutoConfiguration注解

Import注解 Enable* 底层依赖于 Import 注解导入一些类&#xff0c;使用 Import 导入的类会被 Spring 加载到 IOC 容器中Import 提供了4种用法&#xff1a; 1.导入Bean2.导入配置类3.导入ImportSelector实现类&#xff1b;一般用于加载配置文件中的类4.导入ImportBeanDefinitio…...

【笔记】C#一维数组、多维数组和交错数组的区别总结

文章目录前言数组的概念1&#xff0c;一维数组&#xff1a;2&#xff0c;多维数组&#xff1a;3&#xff0c;交错数组&#xff1a;区别总结结语前言 &#x1f604;大家好&#xff0c;我是writer桑&#xff0c; 这是自己整理的 C# 数组笔记&#xff0c;方便自己学习的同时分享出…...

【SpringBoot】分布式日志跟踪—通过MDC实现全链路调用日志跟踪

一.MDC 1.MDC介绍 MDC&#xff08;Mapped Diagnostic Context&#xff0c;映射调试上下文&#xff09;是 log4j 和 logback 提供的一种方便在多线程场景下记录日志的功能。MDC 可以看成是一个与当前线程绑定的Map&#xff0c;可以往其中添加键值对。MDC 中包含的内容可以被同…...

【设计模式】创建型模式

简单工厂模式 系列综述&#xff1a; xxxxxxxxx 文章目录对象创建型模式简单&#xff08;静态&#xff09;工厂模式工厂方法模式参考博客&#x1f60a;点此到文末惊喜↩︎ 对象创建型模式 简单&#xff08;静态&#xff09;工厂模式 抽象原理 抽象产品基类 &#xff1a;定义了…...

Spark Catalyst 查询优化器原理

这里我们讲解一下SparkSQL的优化器系统Catalyst&#xff0c;Catalyst本质就是一个SQL查询的优化器&#xff0c;而且和 大多数当前的大数据SQL处理引擎设计基本相同&#xff08;Impala、Presto、Hive&#xff08;Calcite&#xff09;等&#xff09;。了解Catalyst的SQL优化流程&…...

贝叶斯分析法在市场调研中的应用

一、市场调研的需求场景 在营销活动的用研调研时,我们经常会去问用户在不同平台的品类付费情况,以对比大促期间本品和竞品分别在哪些品类上具有市场优势,他们之间的差距具体在哪里、差距有多大。假如根据调研问卷结果,我们知道拼多多用户有30%的人在大促购买生鲜类,而淘宝…...

JavaEE——MyBatis将查询结果集封装进POJO实体类

简单介绍 在之前的我们比较详细的介绍过MyBatis的配置信息的时候&#xff0c;在SQL映射文件中说过我们可以直接将结果集映射到我们的POJO实体类中&#xff0c;省去了我们自己处理查询结果集的时间和代码&#xff0c;接下来我们就来演示将单条数据和多条数据映射到我们POJO实体…...

C++11 包装器function

文章首发公众号&#xff1a;iDoitnow C提供了多个包装器&#xff0c;它们主要是为了给其他编程接口提供更一致或更合适的接口。C11提供了多个包装器&#xff0c;这里我们重点了解一下包装器function。 对于function, C 参考手册给出的定义为&#xff1a; 类模板 std::function…...

XCP实战系列介绍14-基于Vector_Davinci工具的XCP配置介绍(三)

本文框架 1.概述2. 其他模块配置2.1 XCP初始化3. 手工代码部分3.1 周期函数添加3.2 DAQ Event调用3.3 XCP模块本身代码3.4 标定量的添加1.概述 在对XCP的配置部分介绍中我们计划分别对通讯部分配置、XCP模块本身配置及其他相关模块配置三篇进行介绍,在前两篇我们介绍了XCP配置…...

计算机图形学:中点BH算法对任意斜率的直线扫描转换方法

作者&#xff1a;非妃是公主 专栏&#xff1a;《计算机图形学》 博客地址&#xff1a;https://blog.csdn.net/myf_666 个性签&#xff1a;顺境不惰&#xff0c;逆境不馁&#xff0c;以心制境&#xff0c;万事可成。——曾国藩 文章目录专栏推荐专栏系列文章序一、问题提出二、…...

(十一)、用户中心页面【uniapp+uinicloud多用户社区博客实战项目(完整开发文档-从零到完整项目)】

1,个人中心页面 1.1 新建个人中心页面 1.2 纯净版个人中心页面代码&#xff1a; <template><view class"user"><view class"top"><view class"group"><view class"userinfo"><!-- 顶部 左侧 头像 …...

LA@复数和复矩阵@实对称阵相关定理

文章目录复数&#x1f388;复矩阵和复向量共轭矩阵性质定理实对称阵的相关定理复数&#x1f388; 复数 (数学) (wikipedia.org) 加法&#xff1a;(abi)(cdi)(ac)(bd)i)减法&#xff1a;(abi)−(cdi)(a−c)(b−d)i)乘法&#xff1a;(abi)(cdi)acbciadibdi2(ac−bd)(bcad)i除法&…...

cmd set命令笔记

使用 set是cmd最基础的命令&#xff0c;每个人都会用&#xff0c;但其实它还是有些知识的。 set 用来接收入参 set /p var请选择&#xff08;1或2或3&#xff09;: echo %var%可以接收输入的参数。 set /p var请选择&#xff08;1或2或3&#xff09;: echo %var% 语法 he…...

IB学校获得IBO授权究竟有多难?

IB 学校认证之路&#xff0c;道阻且长 The road to IB school accreditation is long and difficult一所学校能获得IB授权必须经过IBO非常严格的审核&#xff0c;在办学使命&教育理念、组织架构、师资力量&授课技能、学校硬件设施和课程体系上完全符合标准才可获得授权…...

火山引擎 DataTester:A/B 测试,让企业摆脱广告投放“乱烧钱”

更多技术交流、求职机会&#xff0c;欢迎关注字节跳动数据平台微信公众号&#xff0c;回复【1】进入官方交流群 在广告投放的场景下&#xff0c;一线广告优化师通常会创建多个计划&#xff0c;去测试不同的广告素材效果。这套方法看似科学&#xff0c;实际上却存在诸多问题&…...

php网站开发更换模板/如何快速收录一个网站的信息

1.失败的BI项目 对于大多数信息化项目来说&#xff0c;BI项目和知识管理项目是难度最大的。暂且放下知识管理不说&#xff0c;首先&#xff0c;我们先把使用BI的角色确认下来。 大家都知道&#xff0c;BI是在1996年提出来的&#xff0c;现在大部分人都认为BI就是一个辅助决策…...

网站建设与安全管理/合肥全网优化

跟踪猜测的数字&#xff0c;只有在用户还没有猜到我们猜测的数字集中的数字时才会增加&#xff1a;import randomprint("Guess a number between 1-100")the_number random.randint(1, 100)tries 0# store all the user guessesguessed set()while True:guess in…...

建立网站赚钱 优帮云/深圳搜索引擎优化seo

有时候装系统或者修复电脑系统时需要用到pe系统&#xff0c;当在pe环境下要给文件进行压缩并加密时该怎么做呢?下面用7-zip(压缩解压工具)教大家在pe中给 压缩文件加密 的方法&#xff0c;我们一起来看看压缩文件如何加密吧。1、电脑插入u启动u盘启动盘&#xff0c;重启并快速…...

如何选择网站制作公司/微信推广软件

第二章详细介绍了Visual Studio 2010中内置的SharePoint Developer Tools。发现任何问题&#xff0c;请告诉我&#xff08;kaneboy [a] gmail.com&#xff09;。 第二章 使用Visual Studio 2010 2 第一节 建立开发环境 2 2.1.1 建立开发环境的可选方案 3 2.1.2 在Wind…...

旅游网站建设和开发/专业做网站公司

win10中要开启热点时可能会报这个错。 解决方法如下&#xff1a; 1 右击电脑选择属性-》设备管理器 2、选择网络适配器 下的WiFi模块&#xff0c;不同电脑名称会有差异&#xff0c;但是名字一定包含 “wireless“ 双击它&#xff0c;选择高级设置 将2.4G 和 5.2G的信道宽度…...

WordPress评论通知邮箱/关键词优化的软件

目录 auto_ptr 构造函数 拷贝赋值 让auto_ptr对象具有指针的行为 析构函数 unique_ptr _Unique_ptr_base remove_reference _Get_deleter_pointer_type _Unique_ptr_base的第三个模板参数 构造函数 无参/NULL构造 用管理对象实例构造 用管理对象实例及删除器实例…...