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中的modf()函数取小数部分不准确问题

    当使用Python内置函数modf()函数来获取一个数的小数部分时,可能会发现结果不准确。这是因为某些小数在计算机中无法真正精确表示,因此使用modf()函数得到的结果不一定是准确的。如果你在使用Python开发时遇到这个问题,不要担心,下面是解决这个问题的完整攻略。 问题定位 首先,我们需要明确问题所在。假设要获取数字3.1415926的小数部分,可以使用…

    python 2023年6月3日
    00
  • Python如何使用BeautifulSoup爬取网页信息

    BeautifulSoup是一个Python库,用于解析HTML和XML文档,并提供了一些方便的方法来获取和操作文档中的元素。本文将详细讲解如何使用BeautifulSoup库爬取网页信息,包括两个示例。 示例一:爬取单个元素 以下是一个示例代码,演示如何使用BeautifulSoup库爬取单个元素: import requests from bs4 imp…

    python 2023年5月15日
    00
  • Python机器学习之随机梯度下降法的实现

    Python机器学习之随机梯度下降法的实现 在机器学习中,拟合函数常常通过优化算法来实现。梯度下降法是一种最常见的优化算法,其具有简单、易于实现等特点。随机梯度下降法(Stochastic Gradient Descent, SGD)则是梯度下降法的一种变体,其通常比标准梯度下降法具有更低的时间复杂度和更快的速度。 本文将介绍随机梯度下降法的实现过程,包括概…

    python 2023年6月3日
    00
  • pip报错“ValueError: invalid literal for int() with base 10: ‘2.2’”怎么处理?

    当使用pip安装Python包时,可能会遇到“ValueError: invalid literal for int() with base 10: ‘2.2’”错误。这个错误通常是由以下原因之一引起的: 包版本号格式不正确:如果包版本号格式不正确,则可能会出现此错误。在这种情况下,需要更改包版本号格式。 pip版本过低:如果pip版本过低,则可能会出现此错…

    python 2023年5月4日
    00
  • 如何用六步教会你使用python爬虫爬取数据

    我来详细讲解如何用六步教会你使用Python爬虫爬取数据。 1. 学习Python基础知识 首先,在使用Python爬虫之前,你需要对Python有一定的了解。比如,掌握Python语言基础、了解常用的第三方库等等。建议先学习Python基础知识,这样会对后面的爬虫开发非常有帮助。 2. 确定爬取的目标网站 接下来,你需要确定你要爬取的目标网站。这可能是一个…

    python 2023年5月14日
    00
  • Python上下文管理器详细使用教程

    Python上下文管理器详细使用教程 什么是上下文管理器? 在Python中,上下文管理器是一种可以管理代码块执行上下文的对象,它可以定义在什么情况下执行代码块以及在执行前/后需要做哪些操作。最常见的上下文管理器是with语句,with语句可以在代码块执行前自动调用一个__enter__方法,在代码块执行结束后自动调用一个__exit__方法,从而能够很好地…

    python 2023年6月2日
    00
  • 浅谈Python里面小数点精度的控制

    我来介绍一下“浅谈Python里面小数点精度的控制”的完整攻略。 简介 在Python中,小数点精度的控制是非常重要的一部分。在计算机中,浮点数的表示并不是完全精确的,尤其在做科学计算时,需要控制小数点位数,来避免误差积累和信息丢失。 保留小数点位数 在Python中,我们可以使用round()函数来精确控制保留小数点位数,其语法如下: round(num,…

    python 2023年6月3日
    00
  • 在Python的一段程序中如何使用多次事件循环详解

    多次事件循环是指在一个程序中,需要对多个事件进行循环监听和处理。使用 Python 中的异步编程库 asyncio 可以方便地实现多次事件循环。下面给出一个示例,来演示如何在 Python 中使用 asyncio 库进行多次事件循环。 基本概念 在介绍代码示例之前,我们来简要介绍一下 asyncio 的基本概念。在 asyncio 中,事件循环(Event …

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