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

当我们在 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多线程中Lock()与RLock()锁详解

    题目:对Python多线程中 Lock() 与 RLock() 锁详解的攻略 1. 简介 在Python中,多线程编程时可能会造成线程之间的互斥问题,为了解决这个问题,Python内置了两种锁机制:Lock() 和 RLock()锁。这两种锁机制的功能类似,但是在使用场景和处理细节上略有不同。接下来我将分别介绍它们的详细用法。 2. Lock() 锁 2.1…

    python 2023年5月18日
    00
  • Python 字节流,字符串,十六进制相互转换实例(binascii,bytes)

    Python 字节流、字符串、十六进制转换实例 在 Python 中,我们经常需要将字节流、字符串和十六进制之间相互转换,这在网络通信和加密算法中特别常见。Python 内置模块 binascii 和 bytes 提供了相应的函数,帮助我们完成这些转换。 bytes 和 str 之间的转换 Python 3 中的字符串是 Unicode 编码,而不是像 Py…

    python 2023年6月5日
    00
  • 在Python下使用Txt2Html实现网页过滤代理的教程

    使用Txt2Html实现网页过滤代理的教程 1. 简介 Txt2Html是一个将纯文本文件转换为HTML格式的工具,可以快速将txt格式的文件转换为html格式的文件。在Python下使用Txt2Html可以实现网页过滤代理的功能,将一些敏感信息进行过滤,然后再通过代理将过滤后的内容转发出去。下面是详细教程。 2. 安装Txt2Html 使用pip命令安装T…

    python 2023年5月18日
    00
  • Python 去除字符串中指定字符串

    当我们想要在Python字符串中去除指定的字符串时,可以使用Python字符串的内置方法.replace()来实现。.replace()方法可以将所指定的子字符串替换成空字符串,达到去除指定字符串的目的。 下面是详细的步骤: 步骤一:使用.replace()方法替换指定字符串 使用replace()方法替换字符串时,需要传入两个参数: 需要替换的子字符串 替…

    python 2023年6月5日
    00
  • 如何使用Python从数据库中获取CLOB类型的数据并将其保存到本地文件中?

    以下是如何使用Python从数据库中获取CLOB类型的数据并将其保存到本地文件中的完整使用攻略。 使用Python从数据库中获取CLOB类型的数据并将其保存到本地文件中的前提条件 在Python中从数据库获取CLOB类型的数据并将其保存到本地文件中前,需要保已经安装并启动支持数据的,例如Oracle、MySQL或PostgreSQL,并且需要安装Python…

    python 2023年5月12日
    00
  • PyCharm在win10的64位系统安装实例

    下面是我们来介绍一下“PyCharm在Win10的64位系统安装实例”。 安装前准备 在进行安装前,我们需要先检查一下系统环境是否满足安装要求。 确认系统版本 首先我们需要确认一下自己的Windows系统版本是否是64位系统。 打开“设置”-“系统”-“关于”,在“系统类型”一栏中可以看到系统的位数,确保是“64位操作系统”。 安装Python 在安装PyC…

    python 2023年5月30日
    00
  • python脚本实现数据导出excel格式的简单方法(推荐)

    接下来我将详细讲解“python脚本实现数据导出Excel格式的简单方法(推荐)”实例教程。 1. 简介 本文主要讲解如何使用Python实现将数据导出为Excel格式的简单方法。其中,我们使用第三方库openpyxl来实现数据写入Excel的操作。此外,我们还会介绍pandas库的方式来进行Excel写入。 2. 安装库 首先我们需要安装openpyxl库…

    python 2023年5月13日
    00
  • Python在字典中查找元素的3种方式

    Python中常见的数据结构之一是字典。字典是由键和值组成的无序集合,其中的键是唯一的。我们需要在字典中查找元素时,可以使用以下三种方式。 使用in关键字查找 在Python中,可以使用in关键字来检查字典中是否存在某个键,如果存在则返回True,否则返回False。 # 示例1 user_dict = {‘name’: ‘Alice’, ‘age’: 20…

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