Python对列表进行排序的5种实现方式

 更新时间:2025年12月15日 16:58:41   作者:飞起来fly呀  
这篇文章介绍了五种在Python中进行排序的方法,包括sort()方法、sorted()函数、lambda表达式作为key参数进行排序、operator模块进行排序以及numpy模块进行排序,每种方法都有其适用的场景和优势,可以根据具体需要选择最合适的方法

在Python编程中,排序是一个常见的需求。无论是对小规模数据还是大数据集,Python提供了多种灵活且高效的排序方法,让开发者可以根据具体需要选择最合适的方案。

以下将详细介绍五种强大的排序方法: sort() 方法、sorted() 函数、lambda 表达式作为 key 参数进行排序、operator 模块进行排序以及 numpy 模块进行排序,助你轻松应对各种情况!

1.使用sort()方法

想要就地排序列表?使用sort()方法!它直接修改原列表,简单又高效!

sort()方法是列表对象的一个方法,可以直接对列表进行排序,不需要创建新的列表。sort()方法有两个可选参数:reverse和key。

reverse参数是一个布尔值,用于指定排序顺序是升序还是降序,默认为False(升序)。

key参数是一个函数,用于指定排序的关键字。默认为None,表示按照元素的大小进行排序。

示例代码:

lst = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
lst.sort()  # 默认升序排序
print(lst)  # [1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9]

lst.sort(reverse=True)  # 降序排序
print(lst)  # [9, 6, 5, 5, 5, 4, 3, 3, 2, 1, 1]

lst = ['apple', 'banana', 'orange', 'pear']
lst.sort(key=len)  # 按照字符串长度排序
print(lst)  # ['pear', 'apple', 'banana', 'orange']

运行结果:

2.使用sorted()函数

需要保留原列表不变?sorted()函数来帮忙!它返回一个新的已排序列表,拥有更大的灵活性!

sorted()函数是Python内置函数,可以对任何可迭代对象进行排序,返回一个新的列表。

sorted()函数有三个可选参数:reverse、key和cmp。

  • reverse参数和sort()方法中的reverse参数作用相同。
  • key参数和sort()方法中的key参数作用相同。
  • cmp参数是一个函数,用于指定比较两个元素的规则。默认为None,表示按照元素的大小进行排序。

示例代码:

lst = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
new_lst = sorted(lst)  # 默认升序排序
print(new_lst)  # [1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9]

new_lst = sorted(lst, reverse=True)  # 降序排序
print(new_lst)  # [9, 6, 5, 5, 5, 4, 3, 3, 2, 1, 1]

lst = ['apple', 'banana', 'orange', 'pear']
new_lst = sorted(lst, key=len)  # 按照字符串长度排序
print(new_lst)  # ['pear', 'apple', 'banana', 'orange']

运行结果:

除了sort()方法和sorted()函数,Python还提供了一些其他的排序方法,例如:

3.使用lambda表达式作为key参数进行排序

想要根据特定规则排序?使用lambda表达式作为key参数,让你随心所欲!

lambda表达式是一种匿名函数,可以用于简化代码。在排序时,可以使用lambda表达式作为key参数,指定排序的关键字。

示例代码:

lst = ['apple', 'banana', 'orange', 'pear']
lst.sort(key=lambda x: x[1])  # 按照第二个字母排序
print(lst)  # ['banana', 'pear', 'apple', 'orange']

运行结果: 

4.使用operator模块进行排序

对于更复杂的排序需求,operator模块提供了方便的排序工具!

operator模块提供了一些函数,可以用于操作Python中的内置对象。在排序时,可以使用operator模块中的函数作为key参数,指定排序的关键字。

示例代码:

import operator

lst = [('apple', 3), ('banana', 2), ('orange', 4), ('pear', 1)]
lst.sort(key=operator.itemgetter(1))  # 按照第二个元素排序
print(lst)  # [('pear', 1), ('banana', 2), ('apple', 3), ('orange', 4)]

运行结果:

 

5.使用numpy模块进行排序

如果你在处理大数据,numpy模块的排序功能会让你事半功倍!

numpy模块是Python中用于科学计算的一个重要模块,提供了很多数组操作函数。在排序时,可以使用numpy模块中的函数进行排序。

示例代码:

import numpy as np


lst = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
new_lst = np.sort(lst)  # 默认升序排序
print(new_lst)  # [1 1 2 3 3 4 5 5 5 6 9]


new_lst = np.sort(lst)[::-1]  # 降序排序
print(new_lst)  # [9 6 5 5 5 4 3 3 2 1 1]

运行结果:

总结

Python为开发者提供了灵活多样的选择来对列表进行排序,这五种排序方法涵盖了从基本到复杂的应用场景,每种方法都有其适用的场景和优势。

sort()方法和sorted()函数适合常规排序,lambda 和 operator 模块适合自定义排序规则,而 numpy 则适合处理复杂的数值数据。

根据需要选择最合适的方法,可以让您的数据处理更加高效,结果更为可靠。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • python从zip中删除指定后缀文件(推荐)

    python从zip中删除指定后缀文件(推荐)

    这篇文章给大家介绍了python从zip中删除指定后缀文件,然后再自动压缩,本文给大家提供了源码参考,感兴趣的朋友跟随小编一起看看吧
    2019-12-12
  • 使用pygame写一个古诗词填空通关游戏

    使用pygame写一个古诗词填空通关游戏

    这篇文章主要介绍了使用pygame写一个古诗词填空通关游戏,之前写的诗词填空的游戏支持python2,现在对程序进行了修改,兼容支持python2和python3,需要的朋友可以参考下
    2019-12-12
  • 基于Python制作ASCII码转换器

    基于Python制作ASCII码转换器

    ASCII码是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言。本文将利用Python制作一个ASCII码转换器,感兴趣的可以动手试一试
    2022-02-02
  • python图形界面开发之wxPython树控件使用方法详解

    python图形界面开发之wxPython树控件使用方法详解

    这篇文章主要介绍了python图形界面开发之wxPython树控件使用方法详解,需要的朋友可以参考下
    2020-02-02
  • 零基础写python爬虫之使用urllib2组件抓取网页内容

    零基础写python爬虫之使用urllib2组件抓取网页内容

    文章详细介绍了在python2.5环境下,如何使用urllib2这个python自带的组件进行抓取指定网页内容的,整个过程记录的非常的详细,也很简单,有需要的朋友可以参考下,写出自己的python爬虫
    2014-11-11
  • 浅谈Python中的模块

    浅谈Python中的模块

    这篇文章主要介绍了Python中的模块相关知识,文中代码非常详细,供大家参考和学习,感兴趣的朋友可以了解下
    2020-06-06
  • python实现内存监控系统

    python实现内存监控系统

    这篇文章主要为大家详细介绍了python实现内存监控系统,通过系统命令或操作系统文件获取到内存信息,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-06-06
  • 关于keras中的Reshape用法

    关于keras中的Reshape用法

    这篇文章主要介绍了关于keras中的Reshape用法,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-07-07
  • Pygame Event事件模块的详细示例

    Pygame Event事件模块的详细示例

    事件是Pygame的重要模块之一,比如鼠标点击、键盘敲击、游戏窗口移动、调整窗口大小、触发特定的情节、退出游戏等等,本文就详细的介绍一下具体用法,感兴趣的可以了解一下
    2021-11-11
  • Python读取Excel的方法实例分析

    Python读取Excel的方法实例分析

    这篇文章主要介绍了Python读取Excel的方法,实例分析了Python操作Excel文件的相关技巧,非常具有实用价值,需要的朋友可以参考下
    2015-07-07

最新评论