python列表排序用 sort()和sorted()的区别

yizhihongxing

当我们在 Python 中要对一个列表进行排序时,可以使用两种不同的方式,分别是 sort()sorted()。虽然这两种方式都可以达到同样的目的,但它们在实现上有所不同。

sort() 方法

sort() 是针对列表进行就地排序(即排序后会改变原列表),它的语法如下:

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

其中,key 是一个用于比较的函数或 lambda 表达式,reverse 是一个布尔值,表示排序顺序(若为 True 则降序,否则为升序)。如果不指定 key ,则按照元素的默认顺序进行排序。

下面的代码示例演示了如何使用 sort() 方法进行排序:

numbers = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]

numbers.sort()  # 默认升序排序
print(numbers)  # 输出:[1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9]

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

sorted() 函数

sorted() 是一个内置的函数,它可以针对任何可迭代对象进行排序(不仅限于列表),并且它不会改变原对象,而是返回一个新的已排序的对象。它的语法如下:

sorted(iterable, key=None, reverse=False)

其中,iterable 是需要排序的可迭代对象,keyreverse 含义与 sort() 方法相同。

下面的代码示例演示了如何使用 sorted() 函数进行排序:

numbers = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]

new_numbers = sorted(numbers)  # 默认升序排序
print(new_numbers)  # 输出:[1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9]

new_numbers = sorted(numbers, reverse=True)  # 降序排序
print(new_numbers)  # 输出:[9, 6, 5, 5, 5, 4, 3, 3, 2, 1, 1]

上面这个示例中,我们首先定义了一个包含一些数字的列表。我们可以使用 sorted() 函数对其进行排序,并将排序后的结果存储在一个新的变量中,而不会改变原始列表的顺序。同时,我们也可以使用 sorted() 函数的 key 参数来指定按照数字的绝对值对列表进行排序:

numbers = [3, -1, 4, -1, 5, 9, -2, 6, 5, -3, 5]

new_numbers = sorted(numbers, key=abs)  # 按照元素绝对值升序排序
print(new_numbers)  # 输出:[-1, -1, 2, 3, 3, 4, 5, 5, 5, 6, 9]

上面这个示例中,我们使用 abs 函数作为 key 参数,以便按照数字的绝对值对列表进行排序。最终的结果是一个升序排序的列表,其中数字的顺序是按照它们的绝对值而不是它们的实际值进行排序的。

总之,无论是 sort() 方法还是 sorted() 函数,它们都可以帮助我们对列表进行排序,但它们的实现方式不同,我们可以根据实际情况选择使用哪一种方式。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python列表排序用 sort()和sorted()的区别 - Python技术站

(0)
上一篇 2023年5月13日
下一篇 2023年5月13日

相关文章

  • Python 实现自动导入缺失的库

    Python实现自动导入缺失的库攻略 在Python编程过程中,我们经常会用到许多库,但有时我们会遇到缺失某些库的情况。这时我们需要手动导入缺失的库,导入的过程很繁琐。如果能够实现自动导入缺失的库,将会大大提高我们的工作效率。接下来,我们来详细讲解“Python实现自动导入缺失的库”的完整攻略。 确认缺失的库 在程序中运行代码时,如果遇到缺失某个库的情况,P…

    python 2023年5月19日
    00
  • python目标检测SSD算法预测部分源码详解

    下面是详细讲解“python目标检测SSD算法预测部分源码详解”的完整攻略,包含两个示例说明。 python目标检测SSD算法预测部分源码详解 SSD(Single Shot MultiBox Detector是一种目标检测算法,它可以在一张图像中同时检测多个目标。在SSD算法中,预测部分非常重要的一部分,它可以根据输入图像预测出目标的位置和类别。下面是SS…

    python 2023年5月14日
    00
  • 详解Python PIL ImageFont.load_default()

    ImageFont.load_default()是Python PIL库中的一个函数,主要用于加载操作系统的默认字体。下面是详细的使用攻略: 函数原型 ImageFont.load_default() 函数参数 该函数没有任何参数。 函数返回值 返回一个ImageFont类型的对象。 使用方法 首先需要导入PIL库: from PIL import Imag…

    python-answer 2023年3月25日
    00
  • python 实现二叉搜索树的四种方法

    Python 实现二叉搜索树的四种方法 二叉搜索树(Binary Search Tree,简称BST)是一棵二叉树,它具有以下性质: 若左子树不为空,则左子树上所有结点的值均小于它的根节点的值; 若右子树不为空,则右子树上所有结点的值均大于它的根节点的值; 左、右子树分别也为二叉搜索树; 没有键值相等的节点; 因其高效性,在排序、查找等问题中,常常使用二叉搜…

    python 2023年5月13日
    00
  • Python3内置模块之base64编解码方法详解

    Python3内置模块之base64编解码方法详解 什么是base64? base64是一种用来对二进制数据进行编解码的方法,通过对数据进行处理,使其成为可打印字符,便于传输。 Python内置模块base64的使用 在Python中,base64模块提供了对字符串和字节数据的编码和解码功能。 base64编码 将二进制数据编码成base64字符串,可以使用…

    python 2023年5月31日
    00
  • python放大图片和画方格实现算法

    下面是针对“python放大图片和画方格实现算法”的攻略。 放大图片 如果要放大一张图片,可以使用pillow库的Image模块,通过resize()方法将图片放大到目标尺寸。 from PIL import Image # 打开原始图片并放大到目标尺寸 image = Image.open("原始图片路径") target_size =…

    python 2023年5月18日
    00
  • 8个实用的Python程序你知道几个

    8个实用的Python程序你知道几个 本篇文章将介绍8个实用的Python程序,这些程序可以帮助你提高工作效率,节约时间和精力。 1. 爬虫程序 爬虫程序是一种自动爬取网页数据的程序,可以将大量的网页数据快速地获取到本地,以便后续的数据分析、处理、展示等操作。使用Python编写爬虫程序非常容易,只需要使用第三方库如BeautifulSoup和Request…

    python 2023年5月19日
    00
  • python 中sys.getsizeof的用法说明

    当我们使用Python编写代码时,需要了解如何检查变量或对象所占的内存空间大小。 sys.getsizeof()是Python内置模块sys中的一个函数,用于获取Python对象的字节大小,包括对象自身使用的空间以及对象引用的其他对象的空间。 1. 函数用法说明 函数调用 import sys sys.getsizeof(object[, default])…

    python 2023年6月2日
    00
合作推广
合作推广
分享本页
返回顶部