Python sorted() 函数和sort()函数对比分析

简介: Python sorted() 函数和sort()函数对比分析

Python sorted() 函数

一、概述

sorted()函数是对所有可迭代的对象进行排序操作。

sort与sorted的区别:

sort是应用在list上的方法,sorted可以对所有可迭代的对象进行排序操作。list的sort方法返回的是对已经存在的列表进行操作,无返回值,而内置的sorted函数返回的是一个新的list,而不是在原来的基础上进行的操作。

二、语法

sorted语法:

sorted(iterable, cmp=None, Key=None, reverse=False)

参数说明:

  • iterable--可迭代对象
  • cmp--比较的函数,这个具有两个参数,参数的值都是从可迭代对象中取出,此函数必须遵循的规则为,大于则返回1,小于则返回-1,等于则返回0.
  • key--主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序。
  • reverse--排序规则,reverse=True降序,reverse=Fasle升序(默认)。

三、返回值

sorted()方法的返回值是升序排列后的新列表。

sort()方法无返回值,但是使用sort()方法之后,排序后的列表会覆盖原来的列表。

四、示例

4.1 sorted函数示例代码:

a = [5, 7, 6, 3, 4, 1, 2]
b = sorted(a)  # 保留原列表
print(a)  # [5, 7, 6, 3, 4, 1, 2]
print(b)  # [1, 2, 3, 4, 5, 6, 7]
L = [('b', 2), ('a', 1), ('c', 3), ('d', 4)]
L1 = sorted(L, key=lambda x: x[1])  # 利用key
print(L)  # [('b', 2), ('a', 1), ('c', 3), ('d', 4)]
print(L1)  # [('a', 1), ('b', 2), ('c', 3), ('d', 4)]
students = [('tom', 'A', 16), ('jack', 'B', 12), ('bob', 'A', 19)]
students_desc = sorted(students, key=lambda age: age[2], reverse=True)  # 按年龄降序排列,默认reverse是False
print(students)           # [('tom', 'A', 16), ('jack', 'B', 12), ('bob', 'A', 19)]
print(students_desc)  # [('bob', 'A', 19), ('tom', 'A', 16), ('jack', 'B', 12)]

4.2 sort函数示例代码:

li_one = [6, 3, 4, 1]
li_two = [7, 3, 5, 4]
li_three = ['java', 'c', 'python']
li_one.sort()
print(li_one)  # [1, 3, 4, 6]
li_two.sort(reverse=True)
print(li_two)  # [7, 5, 4, 3]
li_three.sort()
print(li_three)  # ['c', 'java', 'python']
students = [('tom', 'A', 16), ('jack', 'B', 12), ('bob', 'A', 19)]
students.sort(key=lambda age: age[2])
print(students)  # [('jack', 'B', 12), ('tom', 'A', 16), ('bob', 'A', 19)]
相关文章
|
4天前
|
数据采集 缓存 定位技术
网络延迟对Python爬虫速度的影响分析
网络延迟对Python爬虫速度的影响分析
|
22天前
|
数据采集 JSON 数据处理
抓取和分析JSON数据:使用Python构建数据处理管道
在大数据时代,电商网站如亚马逊、京东等成为数据采集的重要来源。本文介绍如何使用Python结合代理IP、多线程等技术,高效、隐秘地抓取并处理电商网站的JSON数据。通过爬虫代理服务,模拟真实用户行为,提升抓取效率和稳定性。示例代码展示了如何抓取亚马逊商品信息并进行解析。
抓取和分析JSON数据:使用Python构建数据处理管道
|
6天前
|
数据采集 存储 JSON
Python爬虫开发中的分析与方案制定
Python爬虫开发中的分析与方案制定
|
13天前
|
数据可视化 开发者 Python
Python GUI开发:Tkinter与PyQt的实战应用与对比分析
【10月更文挑战第26天】本文介绍了Python中两种常用的GUI工具包——Tkinter和PyQt。Tkinter内置于Python标准库,适合初学者快速上手,提供基本的GUI组件和方法。PyQt基于Qt库,功能强大且灵活,适用于创建复杂的GUI应用程序。通过实战示例和对比分析,帮助开发者选择合适的工具包以满足项目需求。
54 7
|
13天前
|
存储 数据处理 Python
Python科学计算:NumPy与SciPy的高效数据处理与分析
【10月更文挑战第27天】在科学计算和数据分析领域,Python凭借简洁的语法和强大的库支持广受欢迎。NumPy和SciPy作为Python科学计算的两大基石,提供了高效的数据处理和分析工具。NumPy的核心功能是N维数组对象(ndarray),支持高效的大型数据集操作;SciPy则在此基础上提供了线性代数、信号处理、优化和统计分析等多种科学计算工具。结合使用NumPy和SciPy,可以显著提升数据处理和分析的效率,使Python成为科学计算和数据分析的首选语言。
22 3
|
14天前
|
存储 机器学习/深度学习 算法
Python科学计算:NumPy与SciPy的高效数据处理与分析
【10月更文挑战第26天】NumPy和SciPy是Python科学计算领域的两大核心库。NumPy提供高效的多维数组对象和丰富的数学函数,而SciPy则在此基础上提供了更多高级的科学计算功能,如数值积分、优化和统计等。两者结合使Python在科学计算中具有极高的效率和广泛的应用。
31 2
|
16天前
|
测试技术 数据安全/隐私保护 Python
探索Python中的装饰器:简化和增强你的函数
【10月更文挑战第24天】在Python编程的海洋中,装饰器是那把可以令你的代码更简洁、更强大的魔法棒。它们不仅能够扩展函数的功能,还能保持代码的整洁性。本文将带你深入了解装饰器的概念、实现方式以及如何通过它们来提升你的代码质量。让我们一起揭开装饰器的神秘面纱,学习如何用它们来打造更加优雅和高效的代码。
|
18天前
|
弹性计算 安全 数据处理
Python高手秘籍:列表推导式与Lambda函数的高效应用
列表推导式和Lambda函数是Python中强大的工具。列表推导式允许在一行代码中生成新列表,而Lambda函数则是用于简单操作的匿名函数。通过示例展示了如何使用这些工具进行数据处理和功能实现,包括生成偶数平方、展平二维列表、按长度排序单词等。这些工具在Python编程中具有高度的灵活性和实用性。
|
20天前
|
Python
python的时间操作time-函数介绍
【10月更文挑战第19天】 python模块time的函数使用介绍和使用。
25 4
|
18天前
|
数据采集 机器学习/深度学习 搜索推荐
Python自动化:关键词密度分析与搜索引擎优化
Python自动化:关键词密度分析与搜索引擎优化