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)]
相关文章
|
14天前
|
机器学习/深度学习 数据采集 TensorFlow
使用Python实现智能食品消费模式分析的深度学习模型
使用Python实现智能食品消费模式分析的深度学习模型
108 70
|
16天前
|
机器学习/深度学习 数据采集 TensorFlow
使用Python实现智能食品消费习惯分析的深度学习模型
使用Python实现智能食品消费习惯分析的深度学习模型
120 68
|
19天前
|
搜索推荐 Python
利用Python内置函数实现的冒泡排序算法
在上述代码中,`bubble_sort` 函数接受一个列表 `arr` 作为输入。通过两层循环,外层循环控制排序的轮数,内层循环用于比较相邻的元素并进行交换。如果前一个元素大于后一个元素,就将它们交换位置。
123 67
|
12天前
|
机器学习/深度学习 数据采集 数据挖掘
使用Python实现智能食品消费市场分析的深度学习模型
使用Python实现智能食品消费市场分析的深度学习模型
90 36
|
6天前
|
数据可视化 算法 数据挖掘
Python量化投资实践:基于蒙特卡洛模拟的投资组合风险建模与分析
蒙特卡洛模拟是一种利用重复随机抽样解决确定性问题的计算方法,广泛应用于金融领域的不确定性建模和风险评估。本文介绍如何使用Python和EODHD API获取历史交易数据,通过模拟生成未来价格路径,分析投资风险与收益,包括VaR和CVaR计算,以辅助投资者制定合理决策。
43 15
|
10天前
|
机器学习/深度学习 数据采集 数据挖掘
使用Python实现智能食品消费趋势分析的深度学习模型
使用Python实现智能食品消费趋势分析的深度学习模型
65 18
|
13天前
|
Python
Python中的函数是**一种命名的代码块,用于执行特定任务或计算
Python中的函数是**一种命名的代码块,用于执行特定任务或计算
40 18
|
5天前
|
数据可视化 DataX Python
Seaborn 教程-绘图函数
Seaborn 教程-绘图函数
34 8
|
14天前
|
Python
Python中的函数
Python中的函数
30 8
|
19天前
|
测试技术 开发者 Python
使用Python解析和分析源代码
本文介绍了如何使用Python的`ast`模块解析和分析Python源代码,包括安装准备、解析源代码、分析抽象语法树(AST)等步骤,展示了通过自定义`NodeVisitor`类遍历AST并提取信息的方法,为代码质量提升和自动化工具开发提供基础。
33 8