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

Python sort() 和 sorted() 的区别应用实例详解

    大家好,今天针对 Python 中 sort() 和 sorted() 之间的区别,来一个实例详细解读。sort — 顾名思义就是排序的意思,它可以接收的对象为可迭代的数据类型。今天以列表为例子演示两者的不同点、相同点,以及其中一些常用的高级参数使用方法。



    sort(),它是不可以储存变量值的 : 例如有一个列表为 day_lst = [‘Monday’,‘Tuesday’,‘Wednesday’,‘Thursday’,‘Friday’,‘Saturday’,‘Sunday’], 当创建一个新的变量名为 new_lst 去执行 day_lst.sort(),然后打印这个变量值,结果为 “None” , 这正验证了 sort() 方法是不可以储存变量值的,因此返回的是空值。



在这里插入图片描述



day_lst = ['Monday','Tuesday','Wednesday','Thursday','Friday','Saturday','Sunday']new_lst = day_lst.sort()print(new_lst)


    对 day_lst sort() 排序后,结果为升序 (ascending)



在这里插入图片描述



day_lst = ['Monday','Tuesday','Wednesday','Thursday','Friday','Saturday','Sunday']day_lst.sort()print(day_lst)


    sorted(),它是可以储存变量值的 : 同样 列表为 day_lst = [‘Monday’,‘Tuesday’,‘Wednesday’,‘Thursday’,‘Friday’,‘Saturday’,‘Sunday’] ,当创建一个新的变量名为 new_lst 去执行 sorted(day_lst),然后打印这个变量值, 结果为一个已经按升序排序的新列表。



在这里插入图片描述



day_lst = ['Monday','Tuesday','Wednesday','Thursday','Friday','Saturday','Sunday']new_lst = sorted(day_lst)print(new_lst)


    以上两种方法,默认的排序方式都是升序 — ascending,那么如果要变成降序 — descending,该怎样实现呢? 只需要加上参数 reverse = True 就可以了。先看看两种方法实现的结果。



在这里插入图片描述



day_lst = ['Monday','Tuesday','Wednesday','Thursday','Friday','Saturday','Sunday']day_lst.sort(reverse=True)print(day_lst)


在这里插入图片描述



day_lst = ['Monday','Tuesday','Wednesday','Thursday','Friday','Saturday','Sunday']new_lst = sorted(day_lst,reverse=True)print(new_lst)


    以上可见,当加上参数 reverse = True, 结果完全是倒转了。那就说明了 reverse 这个可选 (optional ) 参数,默认为 False。 我们可以再看看以下图就知道为什么它是可选的参数,又或者说为什么知道有这个参数的存在可选?



在这里插入图片描述



在这里插入图片描述



    根据以上2个图所显示,无论是 sort() 还是 sorted() , 当写入他们的方法后,编译器都会提示显示有相关的可选参数,以及一些自带的可选参数默认的值。而 reverse 就是一个关键字参数,值为 bool 类型,那就是 True 和 False



    但可能你们会问,方法带出来的提示并没有显示究竟默认的方式是升序还是降序,那怎样判断呢? 我们可以通过查看相对应的底层代码(源码)看看,这也是作为程序员必须掌握的查看方法,因为每个方法里面,包含好多不同的实现方法、参数用法的解释说明等等。



    键盘按着 “Ctrl” 键,然后鼠标移动到相对应的方法,等待方法变成带超链接的状态就可以鼠标点击它,这样就可以进入它的底层代码看相对应的实现规则、逻辑。



    "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() 方法返回一个升序的可迭代的数据类型。其中它包含2个参数,一个就是 key,可以自定义; 另外一个就是 reverse,它可以设置为降序的方式。



在这里插入图片描述



    最后演示一下参数 key 的具体用法,由于 sort() 和 sorted() 这两个方法都支持 key参数,所以只演示 sort(),不再重复 sorted() 这部分了。例如有 num_lst = [50,100,-60,20,40] 这样一个列表。



    在传入 key=abs 这个参数后,可见输出的排序结果为 [20, 40, 50, -60, 100], 按照默认升序逻辑,-60 不是最小吗?为什么它排在第4位,而不是第1位呢? 这样要注意的是因为 key 的值为 abs, abs 意思就是绝对值的意思,因此 -60的绝对值就是60,所以编译器就按 -60转为绝对值 60去排序。



在这里插入图片描述



day_lst = ['Monday','Tuesday','Wednesday','Thursday','Friday','Saturday','Sunday']num_lst = [50,100,-60,20,40]num_lst.sort(key=abs)print(num_lst)


    例如有一个 letter_lst = [‘E’, ‘G’, ‘X’, ‘b’, ‘f’, ‘y’] 的列表, 在传入key=str.lower 后, 它的作用就是先把列表里的字母的大写字母转换成小写,就相当于首先变成 [‘e’, ‘g’, ‘x’, ‘b’, ‘f’, ‘y’] , 要注意的是, 字符串类型的排序按照ASCII的大小进行比较。根据以下截取的底层代码解释,If a key function is given, apply it once to each list item and sort them,ascending or descending, according to their function values. 意思就是排序的结果是根据它们的值而定。相关的字母 ASCII 对照表,可以看我文章最后的对照图。



在这里插入图片描述



    因此在转变成全小写列表 [‘e’, ‘g’, ‘x’, ‘b’, ‘f’, ‘y’] 后, 根据它们对应的 ASCII的值,就相当于 [101, 103, 120, 98, 102, 121] 这样的列表, 然后再按升序排序方式,相当于 [98,101,102,103,120, 121 ] , 因此最后输出的结果为 [‘b’, ‘E’, ‘f’, ‘G’, ‘X’, ‘y’] , 因为 98 对应为 b, 101 对应为 e, 102 对应为 f, 103 对应为 g, 120 对应为 x , 121 对应为 y



在这里插入图片描述





letter_lst = ['E', 'G', 'X', 'b', 'f', 'y']# num_lst.sort(key=abs)letter_lst.sort(key=str.lower)print(letter_lst)


在这里插入图片描述



    关于这两个方法的主要常用方法就介绍到这里了, 如果有任何问题,欢迎评论区留言问,有空的时候会尽快回复!

相关文章:

Python sort() 和 sorted() 的区别应用实例详解

大家好,今天针对 Python 中 sort() 和 sorted() 之间的区别,来一个实例详细解读。sort — 顾名思义就是排序的意思,它可以接收的对象为可迭代的数据类型。今天以列表为例子演示两者的不同点、相同点,以及其中一些常用的高级参数使…...

七、Redis三种高级数据结构-HyperLogLog

Redis HyperLogLog是用来做基数统计的算法,HyperLogLog在优点是,在输入的元素的数量或者体积非常大时,计算基数占用的空间总是固定的、并且非常小。在Redis里每个HyperLogLog键只需花费12KB内存,就可以计算接近 264 个元素的基数。…...

2024年【金属非金属矿山(露天矿山)安全管理人员】模拟考试题库及金属非金属矿山(露天矿山)安全管理人员作业模拟考试

题库来源:安全生产模拟考试一点通公众号小程序 金属非金属矿山(露天矿山)安全管理人员模拟考试题库参考答案及金属非金属矿山(露天矿山)安全管理人员考试试题解析是安全生产模拟考试一点通题库老师及金属非金属矿山&a…...

网站DDoS攻击应对策略:全面防护与恢复指南

随着互联网的发展,网络安全问题日益凸显,其中DDoS(分布式拒绝服务)攻击成为了网站安全的主要威胁之一。当网站遭受DDoS攻击时,可能会面临服务中断、性能下降、数据泄露等严重后果。因此,了解并掌握DDoS攻击…...

线性/非线性最小二乘 与 牛顿/高斯牛顿/LM 原理及算法

最小二乘分为线性最小二乘和非线性最小二乘 最小二乘目标函数都是min ||f(x)||2 若f(x) ax b,就是线性最小二乘;若f(x) ax2 b / ax2 bx 之类的,就是非线性最小二乘; 1. 求解线性最小二乘 【参考】 2. 求解非线性最小二乘…...

mysqldump: Error 2013 导致mysql停止运行

https://www.cnblogs.com/DataArt/p/10173957.html 1 查询表大小 SELECT table_name AS "表名", round(((data_length index_length) / 1024 / 1024), 2) AS "大小(MB)" FROM information_schema.tables WHERE table_schema your_database_name AND …...

2023年数维杯国际大学生数学建模挑战赛D题洗衣房清洁计算解题全过程论文及程序

2023年数维杯国际大学生数学建模挑战赛 D题 洗衣房清洁计算 原题再现: 洗衣房清洁是人们每天都要做的事情。洗衣粉的去污作用来源于一些表面活性剂。它们可以增加水的渗透性,并利用分子间静电排斥机制去除污垢颗粒。由于表面活性剂分子的存在&#xff…...

python 两种colorbar 最大最小和分类的绘制

1 colorbar 按照自定义的最值绘制 归一化方法使用Normalize(vmin0, vmax40.0) import numpy as np import matplotlib as mpl import matplotlib.pyplot as plt import matplotlib.cm as cm import matplotlib.colors as mcolors from matplotlib import rcParams from matplot…...

Linux-基础IO

🌎Linux基础IO 文章目录: Linux基础IO C语言中IO交互       常用C接口         fopen         fputs         fwrite         fgets 当前路径       三个文件流 系统文件IO       open函数     …...

202006青少年软件编程(Python)等级考试试卷(二级)

第 1 题 【单选题】 以下程序的运行结果是?( ) l ["兰溪","金华","武义","永康","磐安","东阳","义乌","浦江"]for s in l:if"义"in s:print(…...

【LeetCode】每日一题:2244.完成所有任务需要的最少轮数

给你一个下标从 0 开始的整数数组 tasks ,其中 tasks[i] 表示任务的难度级别。在每一轮中,你可以完成 2 个或者 3 个 相同难度级别 的任务。 返回完成所有任务需要的 最少 轮数,如果无法完成所有任务,返回 -1 。 英文原题&#xf…...

百度文心一言 java 支持流式输出,Springboot+ sse的demo

参考&#xff1a;GitHub - mmciel/wenxin-api-java: 百度文心一言Java库&#xff0c;支持问答和对话&#xff0c;支持流式输出和同步输出。提供SpringBoot调用样例。提供拓展能力。 1、依赖 <dependency> <groupId>com.baidu.aip</groupId> <artifactId…...

59.基于SSM实现的网上花店系统(项目 + 论文)

项目介绍 本站是一个B/S模式系统&#xff0c;网上花店是在MySQL中建立数据表保存信息&#xff0c;运用SSMVue框架和Java语言编写。并按照软件设计开发流程进行设计实现充分保证系统的稳定性。系统具有界面清晰、操作简单&#xff0c;功能齐全的特点&#xff0c;使得基于SSM的网…...

什么是字节码?

字节码&#xff08;Bytecode&#xff09;是Java虚拟机&#xff08;JVM&#xff09;能够理解和执行的中间代码。Java源代码首先编译成字节码文件&#xff08;扩展名为 .class&#xff09;&#xff0c;而不是直接编译成特定机器的机器码。字节码具有以下特点&#xff1a; 平台无…...

C++ JWT的使用

接入sdk需要使用JWT加密参数&#xff0c;做个记录以备后查 #include <iostream> #include <jwt-cpp/jwt.h> int main() { // 设置JWT的密钥&#xff08;对于HS256&#xff09; std::string secret_key "your-256-bit-secret"; // 创建一个新的JW…...

SpringBoot内置插件的使用(jackson和lombok)

文章目录 引言I lombok(自动为属性生成构造器)II jacksonsee also引言 idea正式版2021.2.2 已经捆绑安装jackson和lombok插件 I lombok(自动为属性生成构造器) Lombok能通过注解的方式,在编译时自动为属性生成构造器、getter/setter、equals、hashcode、toString方法。 htt…...

Franz Electron + React 源码启动运行填坑指南

环境要求 安装miniconda python 环境electron/rebuild用得着&#xff0c;miniconda 默认自带的 python 是 3.11 版本&#xff0c;比较新&#xff1b; 安装virsual studio 2019 要把C桌面相关的都安装了&#xff0c;大概需要20G&#xff0c;不要安装到 C 盘&#xff0c;都安装到…...

网络安全法中关于网络信息的保护和监管,有哪些规定?

网络安全法作为我们数字时代的重要法律保障&#xff0c;对于网络信息的保护和监管有着明确且详细的规定。这些规定不仅体现了国家对于网络安全的重视&#xff0c;也为我们每个人在数字世界中提供了坚实的法律屏障。 首先&#xff0c;我们来看一个关于网络运营者主体责任的案例。…...

前端XHR请求数据

axios封装了XHR(XMLHttpRequest) 效果 项目结构 Jakarta EE9&#xff0c;Web项目。 无额外的maven依赖 1、Web页面 index.html <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Title</title&…...

利用香港多IP服务器优化网站访问速度的关键策略?

利用香港多IP服务器优化网站访问速度的关键策略? 随着数字化时代的不断发展&#xff0c;网站的全球访问速度成为企业吸引用户、提升竞争力的重要因素。特别对于跨国企业而言&#xff0c;如何确保全球用户都能享受到稳定快速的访问体验显得尤为重要。在这一背景下&#xff0c;…...

智慧医疗能源事业线深度画像分析(上)

引言 医疗行业作为现代社会的关键基础设施,其能源消耗与环境影响正日益受到关注。随着全球"双碳"目标的推进和可持续发展理念的深入,智慧医疗能源事业线应运而生,致力于通过创新技术与管理方案,重构医疗领域的能源使用模式。这一事业线融合了能源管理、可持续发…...

【OSG学习笔记】Day 18: 碰撞检测与物理交互

物理引擎&#xff08;Physics Engine&#xff09; 物理引擎 是一种通过计算机模拟物理规律&#xff08;如力学、碰撞、重力、流体动力学等&#xff09;的软件工具或库。 它的核心目标是在虚拟环境中逼真地模拟物体的运动和交互&#xff0c;广泛应用于 游戏开发、动画制作、虚…...

树莓派超全系列教程文档--(62)使用rpicam-app通过网络流式传输视频

使用rpicam-app通过网络流式传输视频 使用 rpicam-app 通过网络流式传输视频UDPTCPRTSPlibavGStreamerRTPlibcamerasrc GStreamer 元素 文章来源&#xff1a; http://raspberry.dns8844.cn/documentation 原文网址 使用 rpicam-app 通过网络流式传输视频 本节介绍来自 rpica…...

【2025年】解决Burpsuite抓不到https包的问题

环境&#xff1a;windows11 burpsuite:2025.5 在抓取https网站时&#xff0c;burpsuite抓取不到https数据包&#xff0c;只显示&#xff1a; 解决该问题只需如下三个步骤&#xff1a; 1、浏览器中访问 http://burp 2、下载 CA certificate 证书 3、在设置--隐私与安全--…...

大模型多显卡多服务器并行计算方法与实践指南

一、分布式训练概述 大规模语言模型的训练通常需要分布式计算技术,以解决单机资源不足的问题。分布式训练主要分为两种模式: 数据并行:将数据分片到不同设备,每个设备拥有完整的模型副本 模型并行:将模型分割到不同设备,每个设备处理部分模型计算 现代大模型训练通常结合…...

Spring数据访问模块设计

前面我们已经完成了IoC和web模块的设计&#xff0c;聪明的码友立马就知道了&#xff0c;该到数据访问模块了&#xff0c;要不就这俩玩个6啊&#xff0c;查库势在必行&#xff0c;至此&#xff0c;它来了。 一、核心设计理念 1、痛点在哪 应用离不开数据&#xff08;数据库、No…...

Python ROS2【机器人中间件框架】 简介

销量过万TEEIS德国护膝夏天用薄款 优惠券冠生园 百花蜂蜜428g 挤压瓶纯蜂蜜巨奇严选 鞋子除臭剂360ml 多芬身体磨砂膏280g健70%-75%酒精消毒棉片湿巾1418cm 80片/袋3袋大包清洁食品用消毒 优惠券AIMORNY52朵红玫瑰永生香皂花同城配送非鲜花七夕情人节生日礼物送女友 热卖妙洁棉…...

【7色560页】职场可视化逻辑图高级数据分析PPT模版

7种色调职场工作汇报PPT&#xff0c;橙蓝、黑红、红蓝、蓝橙灰、浅蓝、浅绿、深蓝七种色调模版 【7色560页】职场可视化逻辑图高级数据分析PPT模版&#xff1a;职场可视化逻辑图分析PPT模版https://pan.quark.cn/s/78aeabbd92d1...

基于IDIG-GAN的小样本电机轴承故障诊断

目录 🔍 核心问题 一、IDIG-GAN模型原理 1. 整体架构 2. 核心创新点 (1) ​梯度归一化(Gradient Normalization)​​ (2) ​判别器梯度间隙正则化(Discriminator Gradient Gap Regularization)​​ (3) ​自注意力机制(Self-Attention)​​ 3. 完整损失函数 二…...

基于PHP的连锁酒店管理系统

有需要请加文章底部Q哦 可远程调试 基于PHP的连锁酒店管理系统 一 介绍 连锁酒店管理系统基于原生PHP开发&#xff0c;数据库mysql&#xff0c;前端bootstrap。系统角色分为用户和管理员。 技术栈 phpmysqlbootstrapphpstudyvscode 二 功能 用户 1 注册/登录/注销 2 个人中…...