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

Python sorted()方法

sorted() 是Python中的一个内置函数,用于对可迭代对象进行排序。它返回一个新的已排序的列表,而不会修改原始的可迭代对象。sorted() 函数的基本语法如下:

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

参数解释:

  • iterable:必需,需要排序的可迭代对象,如列表、元组、字符串、字典等。
  • key:可选,一个函数,用于从每个元素中提取一个用于比较的键。这个函数应该接受一个参数并返回一个用于排序的键。默认值为 None,表示直接比较元素本身。
  • reverse:可选,一个布尔值,如果设置为 True,则排序结果将是降序。默认值为 False,表示升序排序。

示例

  1. 对列表进行升序排序:
numbers = [3, 1, 4, 1, 5, 9, 2, 6]
sorted_numbers = sorted(numbers)
print(sorted_numbers)  
# 输出: [1, 1, 2, 3, 4, 5, 6, 9]
  1. 对列表进行降序排序:
numbers = [3, 1, 4, 1, 5, 9, 2, 6]
sorted_numbers = sorted(numbers, reverse=True)
print(sorted_numbers)  
# 输出: [9, 6, 5, 4, 3, 2, 1, 1]
  1. 使用 key 参数进行自定义排序:
words = ['apple', 'banana', 'cherry', 'date']
sorted_words = sorted(words, key=len)
print(sorted_words)  
# 输出: ['date', 'apple', 'banana', 'cherry']

在这个例子中,key=len 表示按照字符串的长度进行排序。

  1. 结合 keyreverse 参数进行复杂排序:
students = [{'name': 'John', 'age': 20},{'name': 'Jane', 'age': 18},{'name': 'Doe', 'age': 20}
]sorted_students = sorted(students, key=lambda student: (-student['age'], student['name']))
print(sorted_students)

在这个例子中,key=lambda student: (-student['age'], student['name']) 表示首先按照年龄的负数进行排序(即年龄降序),如果年龄相同,则按照名字进行排序(即名字升序)。

输出结果将是:

[{'name': 'John', 'age': 20}, {'name': 'Doe', 'age': 20}, {'name': 'Jane', 'age': 18}]

相关文章:

  • 极具吸引力的小程序 UI 风格
  • 1. ELK日志分析
  • delmia中机器人末端固定工具
  • spring01
  • 用android如何实现计算机计算功能
  • 【机器学习】 第1章 概述
  • 从视频创意到传播策略 | 医药产品TVC新媒体传播方案
  • 运动想象 (MI) 分类学习系列 (14) :基于时空光谱特征的分类方法
  • WebRTC AudioProcessing 移植调试
  • 设计模式-迭代器模式
  • 使用SQLite
  • 从面试角度了解前端基础知识体系
  • JavaFX HTMLEditor
  • 双色球预测算法(Java),——森林机器学习、时间序列
  • 华润的超市卡有什么用?
  • Druid 在有赞的实践
  • dva中组件的懒加载
  • golang 发送GET和POST示例
  • JavaScript 奇技淫巧
  • PAT A1120
  • Promise初体验
  • React-Native - 收藏集 - 掘金
  • RedisSerializer之JdkSerializationRedisSerializer分析
  • SegmentFault 社区上线小程序开发频道,助力小程序开发者生态
  • ViewService——一种保证客户端与服务端同步的方法
  • Vue.js源码(2):初探List Rendering
  • 排序算法学习笔记
  • k8s使用glusterfs实现动态持久化存储
  • 基于django的视频点播网站开发-step3-注册登录功能 ...
  • ​​​​​​​​​​​​​​Γ函数
  • ![CDATA[ ]] 是什么东东
  • #我与Java虚拟机的故事#连载11: JVM学习之路
  • $.each()与$(selector).each()
  • (C语言)编写程序将一个4×4的数组进行顺时针旋转90度后输出。
  • (PySpark)RDD实验实战——取最大数出现的次数
  • (第8天)保姆级 PL/SQL Developer 安装与配置
  • (附源码)ssm基于jsp的在线点餐系统 毕业设计 111016
  • (附源码)计算机毕业设计SSM保险客户管理系统
  • (机器学习-深度学习快速入门)第一章第一节:Python环境和数据分析
  • (译)2019年前端性能优化清单 — 下篇
  • (原+转)Ubuntu16.04软件中心闪退及wifi消失
  • (转)eclipse内存溢出设置 -Xms212m -Xmx804m -XX:PermSize=250M -XX:MaxPermSize=356m
  • (自适应手机端)行业协会机构网站模板
  • .gitignore不生效的解决方案
  • .MSSQLSERVER 导入导出 命令集--堪称经典,值得借鉴!
  • .Net Core 微服务之Consul(二)-集群搭建
  • .NET Core6.0 MVC+layui+SqlSugar 简单增删改查
  • .NET MVC、 WebAPI、 WebService【ws】、NVVM、WCF、Remoting
  • // an array of int
  • /etc/motd and /etc/issue
  • [ 蓝桥杯Web真题 ]-Markdown 文档解析
  • [].slice.call()将类数组转化为真正的数组
  • [《百万宝贝》观后]To be or not to be?
  • [24年新算法]NRBO-XGBoost回归+交叉验证基于牛顿拉夫逊优化算法-XGBoost多变量回归预测
  • [ai笔记3] ai春晚观后感-谈谈ai与艺术