Python组合数据类型----5.2列表( 5.2.4 )

列表元素排序指的是对列表中的元素按照一定规则进行重新排列的操作。Python 中列表元素排序常用的方法有 sort ()、sorted ()、reverse (),下面分别介绍这些方法。

1、sort()方法

sort () 方法用于按特定顺序对列表中的所有元素进行排序,该方法的语法格式如下:

Python 复制代码
sort(key=None, reverse=False)

以上语法格式中各参数的含义如下。

  • key:用于指定排序规则,该参数的取值可以是列表支持的函数或者匿名函数。例如,key=len 表示按元素的长度进行排序。该参数的默认值为 None,表示将按照元素的值进行排序。如果元素的类型是数字类型,则会按照数字的大小进行排序;如果元素的类型是字符串,则会按照字母顺序进行排序。
  • reverse:用于控制列表元素排序的方式,该参数值可以取 True 或者 False,其中 True 表示降序排列,False(默认值)表示升序排列。

使用 sort () 方法对列表元素排序后,排序后的元素会覆盖列表原有的元素,不产生新列表,示例代码如下:

Python 复制代码
li_one = [6, 2, 5, 3]
li_two = [7, 3, 5, 4]
li_three = ['python', 'java', 'php']
li_one.sort()                # 采用升序的方式对列表中的元素进行排序
li_two.sort(reverse=True)    # 采用降序的方式对列表中的元素进行排序
li_three.sort(key=len)       # 按照元素的长度对列表中的字符串进行排序
print(li_one)
print(li_two)
print(li_three)

以上代码首先创建了 3 个列表,即 li_one、li_two 和 li_three,然后使用 sort () 方法分别对这 3 个列表进行排序,其中列表 li_one 采用默认的升序方式重新排列其内部的元素;列表 li_two 采用降序的方式重新排列其内部的元素;列表 li_three 按照元素的长度,并且采用升序的方式重新排列其内部的元素。

运行代码,结果如下:

Python 复制代码
[2, 3, 5, 6]
[7, 5, 4, 3]
['php', 'java', 'python']

2、sorted()函数

sorted () 函数用于按升序的方式排列列表元素,该函数的返回值是升序排列后的新列表,排序操作不会对原列表产生影响。示例代码如下:

Python 复制代码
li_one = [4, 3, 2, 1]
li_two = sorted (li_one) # 采用升序的方式对列表 li_one 的元素进行排序
print (li_one)
print (li_two)

运行代码,结果如下:

Python 复制代码
[4, 3, 2, 1]
[1, 2, 3, 4]

从上述结果可以看出,原列表中的元素没有任何变化,而新列表中的元素已经按照从小到大的顺序进行排列。

3、reverse()方法

reverse () 方法用于逆置列表,即把原列表中的元素从右至左依次排列。示例代码如下:

Python 复制代码
li_one = ['a', 'b', 'c', 'd']
li_one.reverse()
print (li_one)

运行代码,结果如下:

Python 复制代码
['d', 'c', 'b', 'a']
相关推荐
小小张说故事4 分钟前
Python 的 class 语句到底执行了什么?拆开 __prepare__、metaclass.__new__ 和那个被讲反的 __set_name__ 顺序
python
天天被压力2 小时前
【A股分钟级高频数据完全手册 #07】北交所历史分钟K线接口:京市Pro版分时批量
java·人工智能·python
天天被压力2 小时前
【A股分钟级高频数据完全手册 #08】股票日、分时数据接口对比:普通分时与Pro版差异实测
java·人工智能·python
特立独行的猫A3 小时前
AI 时代,我为什么推荐用 cj-tauri 开发桌面应用
java·后端·python
小lo想吃棒棒糖3 小时前
把机器人训练从 GPU 搬到昇腾 NPU:启元 Q1 起身动作 PPO 训练全记录
python·机器人·昇腾·启元机器人
Thanks_ks3 小时前
【第 006 讲】搭建 PyCharm 开发环境:PyCharm 的下载与安装 | 初始设置与常用配置
ide·python·pycharm·开发工具·jetbrains·开发环境·集成开发环境
青少儿编程课堂4 小时前
蓝桥杯青少组图形化省考报名倒计时·全国青少年信息素养大赛·电子学会图形化考级:校园黑白棋人机对战解析
c++·python·算法·bfs·信息学竞赛
tellmewhoisi4 小时前
nlp:知识库检索和dify知识库创建
python·自然语言处理
2601_968793145 小时前
Python Requests 轻量自动化:无需浏览器,实现真人级账号浏览模拟
开发语言·python·自动化
段一凡-华北理工大学14 小时前
工业智能体:从Codex/Claude到项目实战~系列文章05:从“AI助手“到“工业智能体“:能力跃迁与落地范式
人工智能·python·claude·codex·工业智能体·高炉炼铁智能化