33 列表常用方法——sort()、reverse()

server/2024/11/14 12:45:58/

列表对象的 sort() 方法用于按照指定的规则对所有元素进行排序,默认规则是所有元素从小到大升序排序;reverse() 方法用于将列表所有元素逆序或翻转,也就是第一个元素和倒数第一个元素交换位置,第二个元素和倒数第二个元素交换位置,以此类推。

x = [2, 12, 120, 240, 10, 2000, 0]
print(x)x.sort(key=lambda i: len(str(i)), reverse=True)  # 按转换成字符串以后的长度降序排序
print(x)
x.sort(key=str)  # 按转换成字符串以后的大小升序排序
print(x)
x.sort()  # 按默认规则排序
print(x)
x.reverse()  # 把所有元素翻转或逆序
print(x)

在这里插入图片描述

列表对象的 sort() 和 reverse() 分别对列表进行原地排序(in-place sorting)和逆序,没有返回值。 所谓 “原地”,意思是用处理后的数据替换原来的数据,列表首地址不变,列表中元素原来的全部丢失。
如果不想丢失原来的顺序,可以使用内置函数 sorted() 和 reversed()。其中,内置函数 sorted() 返回排序后的新列表,参数 key 和 reverse 的含义与列表方法 sort() 完全相同;内置函数 reversed() 返回一个逆序后的 reversed 对象。充分利用列表对象的 sort() 方法和内置函数 sorted() 的 key 参数,可以实现更加复杂的排序。

gameresult = [['Bob', 95.0, 'A'], ['Alan', 86.0, 'C'],['Mandy', 83.5, 'A'], ['Rob', 89.3, 'E']]
print(gameresult)from operator import itemgetterprint(sorted(gameresult, key=itemgetter(2)))  # 按子列表第3个元素进行升序排序
print(sorted(gameresult, key=itemgetter(2, 0)))
print(sorted(gameresult, key=itemgetter(2, 0), reverse=True))x = ["what", "I'am", "sorting", "by"]  # 以第一个列表内容为依据
y = ["something", "else", "to", "sort"]  # 对另一个列表内容进行排序
pairs = zip(x, y)  # 把两个列表中的对应位置元素进行配对print([i[1] for i in sorted(pairs, key=lambda x: x[0], reverse=True)])s = [[1, 2, 3], [2, 1, 4], [2, 2, 1]]
# 以第二个元素升序,第三个元素降序排序,这里的负号只适用于数值型元素
print((sorted(s, key=lambda i: (i[1], -i[2]))))t = ['aaaa', 'bc', 'd', 'b', 'ba']
print(sorted(t, key=lambda i: (len(i), i)))  # 先按长度排序,长度一样的正常排序

在这里插入图片描述


http://www.ppmy.cn/server/90711.html

相关文章

Laravel为什么会成为最优雅的PHP框架?

Laravel 成为最优雅的 PHP 框架的原因可以从多个方面来解释。以下是一些关键因素: 简洁优雅的语法: Laravel 采用了简洁明了的语法,使得代码更容易阅读和编写。它支持现代 PHP 特性,如命名空间、类自动加载、匿名函数(闭包&#x…

常用Git 管理工具

图形界面工具 GitHub Desktop GitHub 开发的一款跨平台的图形化 Git 工具,支持 Windows、macOS 和 Linux。特点包括简洁的用户界面、易于创建和管理仓库、提交变更、分支管理等。 SourceTree Atlassian 提供的一款免费的跨平台 Git 和 Mercurial 客户端。支持 Windo…

网络通信中的源地址,目的地址,源端口,目的端口,安全区域

1.源地址,目的地址,源端口,目的端口 网络传输数据时要用到的概念,举例子:A主机要发送数据到B主机上。那么 源地址:就是A主机的ip地址 目的地址:B主机的IP地址 A,B两台机子不仅仅是…

关于黑马Ajax项目的笔记

一、token的介绍 概念: 访问权限的令牌,本质上是一串字符串 创建: 正确登录后,由后端签发并返回 作用: 判断是否有登录状态等,控制访问权限 注意 前端只能判断token有无,后端才能判断to…

FRP配置内网穿透52版本以上适用

简述 适用frp配置内网穿透来说我们需要进行简单的区分,具有公网IP的服务器我们简称为服务端,内网的服务器我们可以简称为客户端,frp需要针对不同的服务器配置不同的文件 下载安装包 Linux下载地址 https://github.com/fatedier/frp/relea…

AI工作流程设计的自动化优化:微软与斯坦福的新成果 - Trace

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…

Java的日期类

1.第一代日期类 ① Date类:精确到毫秒,代表特定的瞬间 public static void main(String[] args) { // 获取当前系统时间 // 这里的Date类是在java.util包 // 默认输出的格式是国外的格式Date date new Date();System.out.println…

c++语言学习注意事项

当学习C语言时,有几个重要的注意事项可以帮助初学者更有效地掌握这门强大的编程语言: 1. 理解基本概念和语法 C 是一门复杂且功能强大的编程语言,因此理解其基本概念和语法至关重要。初学者应该重点掌握以下几个方面: 基本语法和…