当前位置: 首页 > 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() 函数 | 菜鸟教程

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

相关文章:

  • mysql事务隔离级别
  • 【C++】string类(下)
  • Elasticsearch: Prefix queries - 前缀查询
  • GEE学习笔记 七十七:GEE学习方法简介
  • 20基于主从博弈的智能小区代理商定价策略及电动汽车充电管理MATLAB程序
  • 长按power键,点击重启按钮,系统重启流程一
  • 数据的TCP分段和IP分片
  • HTML中嵌入B站视频
  • Mars3D Studio 的使用方法
  • Flutter For Web实践
  • 【神级Python代码】作为技术xiao白如何制作一款超炫酷的黑客主题代码雨?牛逼就完了。(源码分享学习)
  • 供应链挑战迎刃而解!桑迪亚国家实验室使出“量子杀手锏”
  • java程序设计-ssm博客管理系统
  • 从0到1一步一步玩转openEuler--17 openEuler DNF(YUM)检查更新
  • SpringBoot-自动配置-@Import注解与@EnableAutoConfiguration注解
  • 【笔记】C#一维数组、多维数组和交错数组的区别总结
  • 【SpringBoot】分布式日志跟踪—通过MDC实现全链路调用日志跟踪
  • 【设计模式】创建型模式
  • Spark Catalyst 查询优化器原理
  • 贝叶斯分析法在市场调研中的应用
  • JavaEE——MyBatis将查询结果集封装进POJO实体类
  • C++11 包装器function
  • XCP实战系列介绍14-基于Vector_Davinci工具的XCP配置介绍(三)
  • 计算机图形学:中点BH算法对任意斜率的直线扫描转换方法
  • (十一)、用户中心页面【uniapp+uinicloud多用户社区博客实战项目(完整开发文档-从零到完整项目)】
  • LA@复数和复矩阵@实对称阵相关定理
  • cmd set命令笔记
  • IB学校获得IBO授权究竟有多难?
  • 火山引擎 DataTester:A/B 测试,让企业摆脱广告投放“乱烧钱”
  • 黑马redis学习记录:缓存