sort与sorted区别用法

2024-09-02 09:52
文章标签 用法 区别 sorted sort

本文主要是介绍sort与sorted区别用法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • sorted内置函数
      • 示例
  • sort是list的方法
      • 示例

sorted内置函数

sorted() 函数是 Python 中的一个内置函数,用于对可迭代对象(如列表、元组、字典等)进行排序,并返回一个新的列表,其中包含排序后的元素。sorted() 函数非常灵活,它接受多个参数来控制排序的行为。以下是一些常用的 sorted() 函数参数:

  1. iterable(必需): 需要进行排序的可迭代对象。

  2. key(可选): 一个函数,用于从每个元素中提取一个用于比较的关键字。它应该接受一个参数并返回一个用于排序的键。默认值为 None,表示直接比较元素本身。

  3. reverse(可选): 布尔值,指定排序顺序。如果设置为 True,则列表将以降序排列,默认为 False,表示升序排列。

示例

基本使用

numbers = [3, 1, 4, 1, 5, 9, 2]
sorted_numbers = sorted(numbers)
print(sorted_numbers)  # 输出: [1, 1, 2, 3, 4, 5, 9]

使用 key 参数

假设我们有一个字符串列表,我们想要根据字符串的长度来排序:

words = ["banana", "pie", "Python", "apple"]
sorted_words = sorted(words, key=len)
print(sorted_words)  # 输出: ['pie', 'apple', 'banana', 'Python']

使用 reverse 参数

如果我们想要上面的列表以降序排列:

sorted_words_desc = sorted(words, key=len, reverse=True)
print(sorted_words_desc)  # 输出: ['Python', 'banana', 'apple', 'pie']

对字典列表进行排序

如果我们有一个字典列表,并希望根据字典的某个值进行排序:

data = [{'name': 'John', 'age': 45}, {'name': 'Sara', 'age': 30}, {'name': 'Mike', 'age': 35}]
sorted_data = sorted(data, key=lambda x: x['age'])
print(sorted_data)
# 输出: [{'name': 'Sara', 'age': 30}, {'name': 'Mike', 'age': 35}, {'name': 'John', 'age': 45}]

在这个例子中,我们使用了 lambda 函数作为 key 参数,它根据字典的 'age' 值来提取排序的键。

sort是list的方法

在Python中,当你提到sort()方法时,你通常是在谈论列表(list)的一个内置方法,该方法用于就地(in-place)对列表中的元素进行排序,即它会直接修改原列表,而不是返回一个新的排序后的列表。相比之下,sorted()函数会返回一个新的列表,原列表保持不变。

sort()方法有几个参数,但不像sorted()函数那样灵活,因为它主要是为列表设计的。sort()方法的参数包括:

  1. key(可选): 一个函数,用于从每个元素中提取一个用于比较的关键字。它应该接受一个参数(列表中的一个元素)并返回一个用于排序的键。默认值为None,表示直接比较元素本身。

  2. reverse(可选): 布尔值,指定排序顺序。如果设置为True,则列表将以降序排列,默认为False,表示升序排列。

这里没有提到sort()方法的第三个参数,因为实际上它只有这两个参数。

示例

基本使用

my_list = [3, 1, 4, 1, 5, 9, 2]
my_list.sort()
print(my_list)  # 输出: [1, 1, 2, 3, 4, 5, 9]

使用key参数

words = ["banana", "pie", "Python", "apple"]
words.sort(key=len)
print(words)  # 输出: ['pie', 'apple', 'banana', 'Python']

使用reverse参数

my_list = [3, 1, 4, 1, 5, 9, 2]
my_list.sort(reverse=True)
print(my_list)  # 输出: [9, 5, 4, 3, 2, 1, 1]

对字典列表进行排序

如果你有一个字典列表,并希望根据字典的某个值进行排序,你可以使用key参数和一个lambda函数:

data = [{'name': 'John', 'age': 45}, {'name': 'Sara', 'age': 30}, {'name': 'Mike', 'age': 35}]
data.sort(key=lambda x: x['age'])
print(data)
# 输出: [{'name': 'Sara', 'age': 30}, {'name': 'Mike', 'age': 35}, {'name': 'John', 'age': 45}]

注意,sort()方法会修改data列表,而不是创建一个新的列表。如果你需要保留原列表不变,你应该使用sorted()函数。

这篇关于sort与sorted区别用法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1129634

相关文章

C#中async await异步关键字用法和异步的底层原理全解析

《C#中asyncawait异步关键字用法和异步的底层原理全解析》:本文主要介绍C#中asyncawait异步关键字用法和异步的底层原理全解析,本文给大家介绍的非常详细,对大家的学习或工作具有一... 目录C#异步编程一、异步编程基础二、异步方法的工作原理三、代码示例四、编译后的底层实现五、总结C#异步编程

go 指针接收者和值接收者的区别小结

《go指针接收者和值接收者的区别小结》在Go语言中,值接收者和指针接收者是方法定义中的两种接收者类型,本文主要介绍了go指针接收者和值接收者的区别小结,文中通过示例代码介绍的非常详细,需要的朋友们下... 目录go 指针接收者和值接收者的区别易错点辨析go 指针接收者和值接收者的区别指针接收者和值接收者的

售价599元起! 华为路由器X1/Pro发布 配置与区别一览

《售价599元起!华为路由器X1/Pro发布配置与区别一览》华为路由器X1/Pro发布,有朋友留言问华为路由X1和X1Pro怎么选择,关于这个问题,本期图文将对这二款路由器做了期参数对比,大家看... 华为路由 X1 系列已经正式发布并开启预售,将在 4 月 25 日 10:08 正式开售,两款产品分别为华

python3 gunicorn配置文件的用法解读

《python3gunicorn配置文件的用法解读》:本文主要介绍python3gunicorn配置文件的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录python3 gunicorn配置文件配置文件服务启动、重启、关闭启动重启关闭总结python3 gun

MySQL 中的 LIMIT 语句及基本用法

《MySQL中的LIMIT语句及基本用法》LIMIT语句用于限制查询返回的行数,常用于分页查询或取部分数据,提高查询效率,:本文主要介绍MySQL中的LIMIT语句,需要的朋友可以参考下... 目录mysql 中的 LIMIT 语句1. LIMIT 语法2. LIMIT 基本用法(1) 获取前 N 行数据(

C#中DrawCurve的用法小结

《C#中DrawCurve的用法小结》本文主要介绍了C#中DrawCurve的用法小结,通常用于绘制一条平滑的曲线通过一系列给定的点,具有一定的参考价值,感兴趣的可以了解一下... 目录1. 如何使用 DrawCurve 方法(不带弯曲程度)2. 如何使用 DrawCurve 方法(带弯曲程度)3.使用Dr

C++ vector的常见用法超详细讲解

《C++vector的常见用法超详细讲解》:本文主要介绍C++vector的常见用法,包括C++中vector容器的定义、初始化方法、访问元素、常用函数及其时间复杂度,通过代码介绍的非常详细,... 目录1、vector的定义2、vector常用初始化方法1、使编程用花括号直接赋值2、使用圆括号赋值3、ve

MySQL中FIND_IN_SET函数与INSTR函数用法解析

《MySQL中FIND_IN_SET函数与INSTR函数用法解析》:本文主要介绍MySQL中FIND_IN_SET函数与INSTR函数用法解析,本文通过实例代码给大家介绍的非常详细,感兴趣的朋友一... 目录一、功能定义与语法1、FIND_IN_SET函数2、INSTR函数二、本质区别对比三、实际场景案例分

pytorch之torch.flatten()和torch.nn.Flatten()的用法

《pytorch之torch.flatten()和torch.nn.Flatten()的用法》:本文主要介绍pytorch之torch.flatten()和torch.nn.Flatten()的用... 目录torch.flatten()和torch.nn.Flatten()的用法下面举例说明总结torch

C++ Sort函数使用场景分析

《C++Sort函数使用场景分析》sort函数是algorithm库下的一个函数,sort函数是不稳定的,即大小相同的元素在排序后相对顺序可能发生改变,如果某些场景需要保持相同元素间的相对顺序,可使... 目录C++ Sort函数详解一、sort函数调用的两种方式二、sort函数使用场景三、sort函数排序