返回顶部
首页 > 资讯 > 后端开发 > Python >Python函数sorted()的特性有哪些
  • 688
分享到

Python函数sorted()的特性有哪些

2023-06-16 04:06:33 688人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

这篇文章主要讲解了“python函数sorted()的特性有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python函数sorted()的特性有哪些”吧!1. 与任何迭代器的兼容性第一

这篇文章主要讲解了“python函数sorted()的特性有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python函数sorted()的特性有哪些”吧!

1. 与任何迭代器的兼容性

第一个原因是sorted()函数更灵活,因为它可以与任何可迭代对象一起使用。相比之下,sort()函数仅适用于列表。如果您不知道什么是可迭代的,可以参考下面的我的上一篇文章。简而言之,可迭代对象是可以在迭代中进行迭代的Python对象,例如元组,列表,集合和字典。

让我们根据兼容的数据类型比较sorted()和sort()。需要注意的一件事是,这两种功能的使用方式存在细微的差异。  sorted()函数将iterable作为参数,而sort()函数的调用者则使用点表示法调用该函数。

>>> # sort a tuple >>> _ = (3, 5, 4).sort() Traceback (most recent call last):  File "<stdin>", line 1, in <module> AttributeError: 'tuple' object has no attribute 'sort' >>> _ = sorted((3, 5, 4)) >>>>>> # sort a dictionary>>> _ = {2: 'two', 0: 'zero', 1: 'one'}.sort()  Traceback (most recent call last):  File "<stdin>", line 1, in <module> AttributeError: 'dict' object has no attribute 'sort' >>> _ = sorted({2: 'two', 0: 'zero', 1: 'one'}) >>>>>> # sort a set >>> _ = set([2, 3, 4]).sort() Traceback (most recent call last):  File "<stdin>", line 1, in <module> AttributeError: 'set' object has no attribute 'sort' >>> _ = sorted(set([2, 3, 4]))

如上面的代码所示,元组,字典和集合均无法调用sort()函数。实际上,sort()函数是列表对象的实例方法,而不是其他集合对象的实例方法,这意味着此函数仅可用于列表对象。相比之下,元组,字典和集合都可以通过sorted()函数进行排序,因为所有这些数据类型都是可迭代的,因此使其适合使用sorted()函数。

2. 创建列表的便利

第二个原因是sorted()函数将按所需顺序对可迭代对象进行排序后将返回一个列表对象。因此,这是构建新列表的便捷方法。但是,sort()函数会更改调用此方法的列表的顺序,我们称此顺序为就地排序。此外,此函数隐式返回None(有时,我们可以说,当隐式返回值为None时,它不返回任何内容)。

让我们考虑以下假设示例。我们从一个名为sales_dict的字典开始,该字典保存全年的销售记录。我们要根据销售额创建一个按降序排列的记录列表。

>>> # records of sales in a dictionary >>> sales_dict = {'spring': 1000, 'Summer': 950, 'Fall': 1030, 'Winter': 1200} >>>>>> # create a list object of sales records >>> sales_list0 = sorted(sales_dict.items(), key=lambda x: x[1], reverse=True) >>> sales_list0[('Winter', 1200), ('Fall', 1030), ('Spring', 1000), ('Summer', 950)] >>>>>> sales_list1 = list(sales_dict.items())>>> sales_list1.sort(key=lambda x: x[1], reverse=True) >>> sales_list1[('Winter', 1200), ('Fall', 1030), ('Spring', 1000), ('Summer', 950)]

在上面的代码中,我们只需要使用sorted()函数编写一行代码即可获得所需的结果。但是,使用sort()函数,我们必须编写两行代码。值得注意的是,由于某人可能会误认为,我们无法通过使用点符号来组合这两行来生成所需的列表对象。

>>> # combine the two lines >>> sales_list2 = list(sales_dict.items()).sort(key=lambda x: x[1], reverse=True) >>> sales_list2>>> type(sales_list2) <class 'NoneType'> >>> print(sales_list2) None

如上面的代码所示,通过组合两行,我们得到的是None值。这是因为sort()函数的返回值为None,而不是调用该函数的列表对象。

3. 与迭代集成

由于sorted()函数返回列表,而sort()函数返回None,这种区别的含义是什么?好吧,在许多情况下,我们期望有可迭代对象,但没有NoneType对象。一种这样的场景是迭代,毕竟这是我们经常使用列表对象执行的一项关键操作。

考虑以下示例。我们有两个字典分别保存第一学期和第二学期的分数。目的是创建一个报告卡,总结每个学生的表现,并按姓名进行排序。

>>> # test results for the first semester >>> results1 = {'John': 95, 'Danny': 80, 'Zack': 98} >>>>>> # test results for the second semester >>> results2 = {'Danny': 84, 'Zack': 95, 'John': 88} >>>>>> # generate the report card>>> for name, score in sorted(results2.items()): ...     print(f'{name} | Spring: {results1[name]} | Fall: {score}') ... Danny | Spring: 80 | Fall: 84 John | Spring: 95 | Fall: 88 Zack | Spring: 98 | Fall: 95

在上面的代码中,我们注意到这两个字典都没有期望的输出顺序,因此,我们将使用sorted()函数对字典进行排序。如您所见,我们可以将排序后的结果直接集成到for循环中,因为sorted()函数返回排序后的列表。

您可能已经预料到,如果我们在这种情况下尝试使用sort()函数,将会发生什么。请参阅下面的更多细节。

>>> for name, score in list(results2.items()).sort(): ...     print(f'{name} | Spring: {results1[name]} | Fall: {score}') ... Traceback (most recent call last):  File "<stdin>", line 1, in <module> TypeError: 'NoneType' object is not iterable

感谢各位的阅读,以上就是“Python函数sorted()的特性有哪些”的内容了,经过本文的学习后,相信大家对Python函数sorted()的特性有哪些这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

--结束END--

本文标题: Python函数sorted()的特性有哪些

本文链接: https://lsjlt.com/news/282371.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Python函数sorted()的特性有哪些
    这篇文章主要讲解了“Python函数sorted()的特性有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python函数sorted()的特性有哪些”吧!1. 与任何迭代器的兼容性第一...
    99+
    2023-06-16
  • python函数有哪些特点
    python函数的特点有以下几种函数可以赋值python中一般的变量和函数都是可以进行赋值的。函数可以是返回值python中函数可以当返回值返回,可以返回单个,也可以返回多个。函数可以在字典中使用python中函数可以容器中使用,如列表、字...
    99+
    2024-04-02
  • python3函数的高级特性有哪些
    本篇文章给大家分享的是有关python3函数的高级特性有哪些,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。python有哪些常用库python常用的库:1.requesuts;...
    99+
    2023-06-14
  • CTF中的PHP特性函数有哪些
    本篇内容主要讲解“CTF中的PHP特性函数有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“CTF中的PHP特性函数有哪些”吧!intval()官方是怎样定义的:简单来说就是让输入的数字变成整...
    99+
    2023-07-05
  • C++ 函数的函数式编程特性有哪些?
    c++++ 支持函数式编程特性,包括:纯函数:使用 const 修饰符声明,不修改输入或依赖外部状态。不可变性:使用 const 关键字声明变量,无法修改其值。惰性求值:使用 std::...
    99+
    2024-04-11
    c++ 函数式编程
  • Python的特性有哪些
    这篇文章主要讲解了“Python的特性有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python的特性有哪些”吧! 面向对象的特性面向对象的程序设计解决了结构化程序设计的复杂...
    99+
    2023-06-02
  • python3中函数的高级特性有哪些
    python3中函数的高级特性有哪些?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。Python主要用来做什么Python主要应用于:1、Web开发;2、数据科学...
    99+
    2023-06-14
  • Python的特性都有哪些
    本篇文章为大家展示了Python的特性都有哪些,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。前言:在了解 Python 的特性之前,我们首先要了解 Python 编程语言是什么。Python 编程语...
    99+
    2023-06-22
  • python自定义函数的特点有哪些
    Python自定义函数的特点有以下几个: 可重用性:自定义函数可以在程序的任何地方被调用和使用,提高了代码的复用性,避免了重复编...
    99+
    2024-02-29
    python
  • Python隐藏的特性有哪些
    本篇内容主要讲解“Python隐藏的特性有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python隐藏的特性有哪些”吧!1...是的,你没看错,在Python中...是一个有效的构造。.....
    99+
    2023-06-15
  • Python 3.9新特性有哪些
    本篇内容主要讲解“Python 3.9新特性有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python 3.9新特性有哪些”吧! 字典合并 一个非常优...
    99+
    2024-04-02
  • python集合有哪些特性
    python中集合的特点有以下几点集合中的元素不能出现重复;集合中的元素是无次序的;集合中的元素没有索引;使用set()函数和{}创建集合,其元素必须是不可变的;而使用set()函数创建的集合,其元素必须是可变的;...
    99+
    2024-04-02
  • Python有哪些隐藏特性
    这篇文章主要讲解了“Python有哪些隐藏特性”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python有哪些隐藏特性”吧!案例一:案例二:案例三:很好理解, 对吧 说明:这些行为是由于 C...
    99+
    2023-06-02
  • Python高级特性有哪些
    本篇内容介绍了“Python高级特性有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!  切片  可以对list, tuple, stri...
    99+
    2023-06-01
  • python字典键的特性有哪些
    这篇文章主要介绍python字典键的特性有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1、不允许同一个键出现两次。创建时,如果同一个键被赋予两次值,则记住后一个值。dict = {'...
    99+
    2023-06-15
  • Python中os.path函数有哪些属性
    本篇文章为大家展示了Python中os.path函数有哪些属性,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。获取当前时间# -*- coding: gbk -...
    99+
    2023-06-17
  • mysql数据库的特性有哪些
    这篇文章主要讲解了“mysql数据库的特性有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“mysql数据库的特性有哪些”吧! ...
    99+
    2024-04-02
  • JavaScript的特性有哪些
    这篇文章主要讲解了“JavaScript的特性有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“JavaScript的特性有哪些”吧!ES2015二进制和...
    99+
    2024-04-02
  • html5的特性有哪些
    本篇内容介绍了“html5的特性有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! ...
    99+
    2024-04-02
  • ecmascript的特性有哪些
    本篇内容介绍了“ecmascript的特性有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! ...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作