107. sort( )方法-排序列表元素(上)

107. sort( )方法-排序列表元素(上)

【目录】

文章目录

  • 107. sort( )方法-排序列表元素(上)
    • 1. 作用
    • 2. 语法
    • 3. 数值列表排序
    • 4. key = str.lower 排序时不区分字母大小写
    • 5. 如何理解区分大小写
    • 6. key = len 按照元素的长度进行排序
    • 7. 总结

【正文】

1. 作用

sort [sɔːt]:整理、排序。

sort的中文意思是排序。

sort是列表对象的一个方法。

【功能】对列表进行排序操作。

sort的作用是对原列表中的元素进行排序。

排序后原列表中的元素顺序发生改变。

2. 语法

【语法】

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

【语法解析】

  1. listname要进行排序的列表对象名。
  2. .英文小圆点。
  3. sort方法名。
  4. ( )英文圆括号。
  5. 参数key:可选参数。
  • 用于指定排序的依据
  • 可以是一个函数或lambda表达式。
  • 用于生成排序的键值。
  • 默认为None,表示按照元素的原始值进行排序。
  1. 参数reverse:可选参数。
  • 用于指定排序的顺序
  • 默认为False,表示按照升序排序。
  • 设置为True时,表示按照降序排序。

【参数key】

key = 函数

Key = lambda表达式

【功能】生成排序的键值。

【参数reverse】

reverse[rɪˈvɜːs]反转;颠倒。

  • reverse = False — 升序

  • reverse = True — 降序

3. 数值列表排序

  • reverse = False — 升序
  • reverse = True — 降序

【代码示例】

# 创建一个名为l的列表对象
l= [10, 8, 4, 2, 6]
print("原列表:", l)

# 对列表进行排序操作
# 语法:listname.sort(key=None, reverse=False)
# listname = l,要操做的列表对象为l
# 默认key=None, 表示按照元素的原始值进行排序
# 默认reverse=False, 按照升序进行排序
# reverse = True,按照降序进行排序
l.sort( )

print("升序:", l)

【终端输出】

原列表: [10, 8, 4, 2, 6]
升序: [2, 4, 6, 8, 10]

当sort( )函数没有参数时,默认reverse=False, 按照升序进行排序。

查看输出结果,2 4 6 8 10为升序排序。

【代码示例】

# 创建一个名为l的列表对象
l= [10, 8, 4, 2, 6]
print("原列表:", l)

# 对列表进行排序操作
# 语法:listname.sort(key=None, reverse=False)
# listname = l,要操做的列表对象为l
# 默认key=None, 表示按照元素的原始值进行排序
# 默认reverse=False, 按照升序进行排序
# reverse=True,按照降序进行排序
l.sort(reverse=True )

print("降序:", l)

【终端输出】

原列表: [10, 8, 4, 2, 6]
降序: [10, 8, 6, 4, 2]

当sort( )函数为reverse=True, 按照降序进行排序。

查看输出结果,10, 8, 6, 4, 2为降序排序。

4. key = str.lower 排序时不区分字母大小写

【知识回顾】

lower( )函数的作用是将字符串中的所有大写字母转换为小写字母。

语法:string.lower()

相关知识点击如下链接:

104. lower()函数-将大写字母转换为小写

当sort()函数的key = str.lower时,表示排序时不区分字母大小写。

【代码示例】

# 创建一个名为char的列表
char = ['apple', 'Banana', 'Orange', 'pear']

# 对列表进行排序操作
# 语法:listname.sort(key=None, reverse=False)
# listname =char,要操做的列表对象为char
# 默认key=None, 表示按照元素的原始值进行排序
# 默认reverse=False, 按照升序进行排序
# reverse=True,按照降序进行排序
char.sort( )

# 默认key=None, 表示按照元素的原始值进行排序
print("区分字母大小写排序:", char)

# key = str.lower 表示在排序时不区分字母大小写
char.sort( key= str.lower)

print("不区分字母大小写排序:", char)

【终端输出】

区分字母大小写排序: ['Banana', 'Orange', 'apple', 'pear']
不区分字母大小写排序: ['apple', 'Banana', 'Orange', 'pear']

key = str.lower 时表示在排序时不区分字母大小写。

不区分大小写,若是升序,则按从a到z的顺序进行排序。

5. 如何理解区分大小写

  • 在排序时区分大小写意味着将大写字母和小写字母视为不同的字符进行排序。

  • 例如,按照区分大小写,按升序排列,"Banana"会排在"apple"之前。

  • 因为大写字母的ASCII码值小于小写字母。

  • 使用str.lower函数时,它会将字符串中的所有字符转换为小写字母。

  • 这样,在排序时就不再区分大小写,所有的字符都被视为小写字母进行比较。

  • 例如,使用str.lower函数对"apple"和"Banana"进行排序,它们会被视为"apple"和"banana",而"apple"会排在"banana"之前。

6. key = len 按照元素的长度进行排序

【知识回顾】

len 函数的作用是获取一个可迭代对象(字符串、列表、元组等)的长度或元素个数。

相关知识点击下面的链接:

33. len 函数获取对象的长度或元素个数

key = len 按照元素的长度进行排序。

【代码示例】

# 创建一个名为char的列表
char = ['apple', 'banana', 'orange', 'pear']

# 对列表进行排序操作
# 语法:listname.sort(key=None, reverse=False)
# listname =char,要操做的列表对象为char
# key=len, 表示按照元素长度进行排序
# 默认reverse=False, 按照升序进行排序
# reverse=True,按照降序进行排序
char.sort( key=len )

print("升序:", char)

# reverse=True,按照降序进行排序
char.sort( key=len ,reverse=True )
print("降序:", char)

【终端输出】

升序: ['pear', 'apple', 'banana', 'orange']
降序: ['banana', 'orange', 'apple', 'pear']

【温馨提示】

当key = len(按元素长度排序),元素的长度相同时,列表元素顺序保持不变。

banana元素长度为6。

orange元素长度为6。

【代码示例】

char = [ 'orange', 'banana']
# 按元素长度进行排序
char.sort( key=len )

# 默认reverse=False, 按升序排序
print("升序:", char)

# reverse=True,按降序排序
char.sort( key=len ,reverse=True)
print("降序:", char)

【终端输出】

升序: ['orange', 'banana']
降序: ['orange', 'banana']

因为元素长度都是6,列表的元素顺序不变,保持原样。

【代码示例】

char = ['banana','orange']
# 按元素长度进行排序
char.sort( key=len )
# 默认reverse=False, 按升序排序
print("升序:", char)
# reverse=True,按降序排序
char.sort( key=len ,reverse=True )
print("降序:", char)

【终端输出】

升序: ['banana', 'orange']
降序: ['banana', 'orange']

因为元素长度都是6,列表的元素顺序不变,保持原样。

7. 总结

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/434945.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Objective-C blocks 概要

1.block的使用 1.1什么是block? Blocks是C语言的扩充功能:带有自动变量(局部变量)的匿名函数。 “带有自动变量”在Blocks中表现为“截取自动变量" “匿名函数”就是“不带名称的函数” 块,封装了函数调用及调用…

Tailscale中继服务derper使用docker-compose部署

docker启动 docker run --restart always \--name derper -p 12345:12345 -p 3478:3478/udp \-v /root/.acme.sh/xxxx/:/app/certs \-e DERP_CERT_MODEmanual \-e DERP_ADDR12345 \-e DERP_DOMAINxxxx \-d ghcr.io/yangchuansheng/derper:latestdocker-compose启动 version: …

STM32(18)I2C

串口通信缺点 一个设备就需要一个串口,单片机可能没有那么多串口外设 总线/非总线 主机:负责管理总线,可控制波特率、数据的通信方向 波特率:由主机产生波特率信号 数据的传输 每个从机都有7位地址,最后移位是读&a…

Android开发教程入门,那些被大厂优化的程序员们

Binder原理 1、概述 Android系统中,涉及到多进程间的通信底层都是依赖于Binder IPC机制。例如当进程A中的Activity要向进程B中的Service通信,这便需要依赖于Binder IPC。不仅于此,整个Android系统架构中,大量采用了Binder机制作…

计算机形式严峻,二本计算机研究生有没有必要读?

有一说一,不值得 现在的就业形式确实严峻,但是我觉得读一个二本的研究生并不能给你带来太大的价值,首先就是就业投简历的时候,面试官面对大量的简历,往往都是先按照学校筛选,985和211的放在一块&#xff0…

画图解题思路( ccf 201512-3)

分析 首先需要转换坐标系,可以将两个坐标系的点写出来,对比一下找规律 可以发现题目中的坐标(x, y)转变成数组坐标系为(n - y - 1, x); 然后再判断是画线还是填充 画线:先转换题目坐标,再遍历画线 填充:采用dfs

如何比较字形相同但编码不同的两个字

今天在做字符串比较时遇到个很新奇的问题,在此记录一下。 字符串比较最常用的方法就是equals方法,来看一下下面这个比较会返回什么结果呢? public static void main(String[] args) {{String s1 "⽹"; // 12153String s2 "…

HplusAdmin ASP.NET基本权限管理系统

HplusAdmin 介绍 一套ASP.NET WebForm(不用控件) hplusasp.netsqlserver 基本权限管理系统 http://hplus.baocaige.top 暂不开源,需要的滴滴或者留下邮箱!!! 账号 普通账号 账号:user 密码:Aa123456普…

【笔记版】edgecore.yaml分析总结

1. 文件路径 /etc/kubeedge/config edgecore.yaml是该目录下唯一的文件 附上链接:edgecore.yaml 2. 文件生成方式 2.1 方式一 使用keadm安装部署的方式,执行完keadm join --cloudcore-ipportcloudcore监听的IP地址:端口(默认为10002&…

1688商品详情数据采集,工程数据采集丨店铺数据采集丨商品详情数据采集

1688是中国的一个大型B2B电子商务平台,主要用于批发和采购各种商品。对于需要从1688上获取商品详情数据、工程数据或店铺数据的用户来说,可以采用以下几种常见的方法: 官方API接口:如果1688提供了官方的API接口,那么可…

项目中spring security与jwt.腾讯面试分享

写这篇文章是为了记录我面试pcg时平时没有留意或者钻研的地方。 面试是根据项目问的问题: 为什么采用jwt存储token? 我的项目是微服务项目,里面部署了资源服务和认证服务,这里选择jwt作为token一方面是可以存储用户的信息&#…

YOLOv7独家原创改进:特征融合涨点篇 | 广义高效层聚合网络(GELAN) | YOLOv9

💡💡💡本文独家改进:即结合用梯度路径规划(CSPNet)和(ELAN)设计了一种广义的高效层聚合网络(GELAN),高效结合YOLOv7,实现涨点。 将GELAN添加在backbone和head处,提供多个yaml改进方法 💡💡💡在多个私有数据集和公开数据集VisDrone2019、PASCAL VOC实现…

FPGA开发之libero元件实例化详细步骤

FPGA开发之libero模块实例化详细步骤 第一步,假设已经建立了两个文件,现在需要将这两个文件连接在一起,如下图所示: 第二步,建立一个SD顶层文件,操作如下: 得到结果如下: 点击OK得…

continue、break 和 return 的区别是什么?

continue、break和return同样是用于控制程序流程的关键字,它们有不同的作用和用法。 continue: 在Java中,continue语句同样通常用于循环结构(如for循环、while循环)。当程序执行到continue时,会立刻跳过当前循环中剩…

第三百八十六回

文章目录 概念介绍使用方法示例代码 我们在上一章回中介绍了Snackbar Widget相关的内容,本章回中将介绍TimePickerDialog Widget.闲话休提,让我们一起Talk Flutter吧。 概念介绍 我们在这里说的TimePickerDialog是一种弹出窗口,只不过窗口的内容固定显示…

K8s集群调度,亲和性,污点,容忍,排障

目录 1.调度约束 调度过程 指定调度节点 查看详细事件 获取标签帮助 修改成 nodeSelector 调度方式 2.亲和性 节点亲和性 Pod 亲和性 键值运算关系 硬策略 软策略 Pod亲和性与反亲和性 创建一个标签为 appmyapp01 的 Pod 使用 Pod 亲和性调度,创建多…

Win11桌面出现的这个图标“了解此图片”怎么关闭?

🧑个人简介:大家好,我是尘觉,希望我的文章可以帮助到大家,您的满意是我的动力😉 在csdn获奖荣誉: 🏆csdn城市之星2名 ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ …

【OpenGL的着色器03】内置变量和函数(gl_Position等)

目录 一、说明 二、着色器的变量 2.1 着色器变量 2.2 着色器内置变量 三、最常见内置变量使用范例 3.1 常见着色器变量 3.2 示例1: gl_PointSize 3.3 示例2:gl_Position 3.4 gl_FragColor 3.5 渲染点片元坐标gl_PointCoord 3.6 gl_PointCoo…

LVS四层负载均衡集群

简介 LVS(Linux Virtual Server)即Linux虚拟服务器,是由章文嵩博士主导的开源负载均衡项目,目前LVS已经被集成到Linux内核模块中。该项目在Linux内核中实现了基于IP的数据请求负载均衡调度方案,终端互联网用户从外部访…

liunx操作系统 进程的基本概念

进程的基本概念 计算机结构体系冯诺依曼 操作系统的管理进程进程的特性标识符系统的调用 创建新的进程 进程的状态进程队列进程的状态在liunx查看进程状态、 进程优先级 计算机结构体系 冯诺依曼 在没有存储器之前,所有的信息都是直接进入CPU,这样效率很…