Python对列表进行排序的五种方法举例

 更新时间:2024年11月18日 11:25:05   作者:飞起来fly呀  
这篇文章主要介绍了Python对列表进行排序的五种方法,文中包括sort()方法、sorted()函数、lambda表达式、operator模块和numpy模块,帮助开发者根据具体需求选择合适的排序方式,需要的朋友可以参考下

前言

在Python编程中,排序是一个常见的需求。今天我来和大家分享5种强大且实用的排序方法,包括使用 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对列表进行排序的五种方法的文章就介绍到这了,更多相关Python对列表排序内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python 获得命令行参数的方法(推荐)

    Python 获得命令行参数的方法(推荐)

    本篇将介绍python中sys, getopt模块处理命令行参数的方法,本文给大家介绍的非常详细,具有参考借鉴价值,需要的朋友参考下吧
    2018-01-01
  • 大数据分析用java还是Python

    大数据分析用java还是Python

    在本篇文章里小编给大家分享了关于java和Python哪个适合大数据分析的相关知识点文章,有需要的朋友们可以学习下。
    2020-07-07
  • python 读取文本文件的行数据,文件.splitlines()的方法

    python 读取文本文件的行数据,文件.splitlines()的方法

    今天小编就为大家分享一篇python 读取文本文件的行数据,文件.splitlines()的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-07-07
  • Python实现二叉排序树与平衡二叉树的示例代码

    Python实现二叉排序树与平衡二叉树的示例代码

    树表查询即借助具有特殊性质的树数据结构进行关键字查找,本文所涉及到的特殊结构性质的树包括:二叉排序树、平衡二叉树。文中详细介绍了二者的实现代码,需要的可以参考一下
    2022-04-04
  • Python处理缺失值的8种不同方法实例

    Python处理缺失值的8种不同方法实例

    缺失值是指粗糙数据中由于缺少信息而造成的数据的聚类、分组、删失或截断,下面这篇文章主要给大家介绍了关于Python处理缺失值的8种不同方法,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-06-06
  • 教你怎么用Python操作MySql数据库

    教你怎么用Python操作MySql数据库

    很多小伙伴都在问我能不能出一篇怎么用Python操作MySql数据库的教程,今天特地整理了本篇文章,文中有非常详细的图文示例,需要的朋友可以参考下
    2021-05-05
  • python random库的简单使用demo

    python random库的简单使用demo

    这篇文章主要为大家介绍了python random库的简单使用demo,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-03-03
  • Pytorch使用DataLoader实现批量加载数据

    Pytorch使用DataLoader实现批量加载数据

    这篇文章主要介绍了Pytorch使用DataLoader实现批量加载数据方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-02-02
  • 详解Python中4种超参自动优化算法的实现

    详解Python中4种超参自动优化算法的实现

    要想模型效果好,每个算法工程师都应该了解的流行超参数调优技术。今天给大家总结超参自动优化方法:网格搜索、随机搜索、贝叶斯优化 和 Hyperband,感兴趣的可以了解一下
    2022-05-05
  • PyQt5根据控件Id获取控件对象的方法

    PyQt5根据控件Id获取控件对象的方法

    今天小编就为大家分享一篇PyQt5根据控件Id获取控件对象的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-06-06

最新评论