sorted() 函数:排序的利器

目录

一、sorted() 函数简介

二、函数使用示例

示例 1:对列表进行排序

示例 2:对字符串进行排序

示例 3:指定排序键

三、参数详细介绍

1、key 参数

2、reverse 参数

四、高级用法

1、自定义排序键函数

2、多级排序

五、总结


一、sorted() 函数简介

  sorted() 函数是 Python 中的内置函数,用于对可迭代对象进行排序。它的基本语法如下:

sorted(iterable, key=None, reverse=False)
  • iterable:表示需要排序的可迭代对象,例如列表、元组、集合等。
  • key:指定一个函数,用于生成排序的比较键。默认为 None,表示直接比较元素本身。
  • reverse:一个布尔值,用于指定排序顺序。默认为 False,表示升序排序;设置为 True 则表示降序排序。

二、函数使用示例

        让我们通过一些示例来演示 sorted() 函数的基本使用方法:

示例 1:对列表进行排序
numbers = [3, 1, 4, 1, 5, 9, 2, 6, 5]
sorted_numbers = sorted(numbers)
print(sorted_numbers)  # 输出:[1, 1, 2, 3, 4, 5, 5, 6, 9]
  • numbers 是一个包含一系列整数的列表。
  • sorted_numbers = sorted(numbers) 使用 sorted() 函数对列表 numbers 进行排序,生成一个新的已排序列表,并将其赋值给变量 sorted_numbers
  • 最后,通过 print(sorted_numbers) 输出排序后的列表。
示例 2:对字符串进行排序
text = "hello world"
sorted_text = sorted(text)
print(sorted_text)  # 输出:[' ', 'd', 'e', 'h', 'l', 'l', 'l', 'o', 'o', 'r', 'w']
  • text 是一个字符串。
  • sorted_text = sorted(text) 使用 sorted() 函数对字符串 text 进行排序,生成一个新的已排序列表,并将其赋值给变量 sorted_text
  • 最后,通过 print(sorted_text) 输出排序后的列表。这里字符串被拆分为单个字符,然后按字母顺序排序。

示例 3:指定排序键

words = ["banana", "apple", "cherry", "blueberry"]
sorted_words = sorted(words, key=len)
print(sorted_words)  # 输出:['apple', 'banana', 'cherry', 'blueberry']
  • words 是一个包含一系列字符串的列表。
  • sorted_words = sorted(words, key=len) 使用 sorted() 函数对列表 words 进行排序,但是这次指定了 key 参数为 len,即按照字符串的长度进行排序。
  • 最后,通过 print(sorted_words) 输出按字符串长度排序后的列表。

三、参数详细介绍

1、key 参数

key 参数用于指定一个函数,该函数将作用于可迭代对象的每个元素,生成用于排序的比较键。例如,若想按元素长度进行排序,则可以指定 key=len

2、reverse 参数

reverse 参数用于指定排序顺序。默认情况下,reverseFalse,表示升序排序;若设置为 True,则表示降序排序。

四、高级用法

        除了基本功能外,sorted() 函数还支持一些高级用法,例如自定义排序键函数、多级排序等。以下是一些示例:

1、自定义排序键函数
def custom_key(word):
    return word[-1]  # 按单词的最后一个字母排序

words = ["apple", "banana", "cherry", "blueberry"]
sorted_words = sorted(words, key=custom_key)
print(sorted_words)  # 输出:['banana', 'apple', 'cherry', 'blueberry']
  • custom_key(word) 是一个自定义的排序键函数,接收一个单词作为参数,并返回单词的最后一个字母作为排序键。
  • words 是一个包含一系列字符串的列表。
  • sorted_words = sorted(words, key=custom_key) 使用 sorted() 函数对列表 words 进行排序,但是这次指定了 key 参数为自定义的排序键函数 custom_key
  • 最后,通过 print(sorted_words) 输出按照单词的最后一个字母排序后的列表。
2、多级排序
data = [("Alice", 25), ("Bob", 30), ("Alice", 20), ("Bob", 25)]
sorted_data = sorted(data, key=lambda x: (x[0], -x[1]))  # 先按名字升序,再按年龄降序
print(sorted_data)  # 输出:[('Alice', 25), ('Alice', 20), ('Bob', 30), ('Bob', 25)]
  • data 是一个包含元组的列表,每个元组表示一个人的姓名和年龄。
  • lambda x: (x[0], -x[1]) 是一个匿名函数,用于指定排序键。在这个例子中,它先按照元组的第一个元素(姓名)升序排序,然后按照元组的第二个元素(年龄)降序排序。
  • sorted_data = sorted(data, key=lambda x: (x[0], -x[1])) 使用 sorted() 函数对列表 data 进行排序,指定了一个匿名函数作为排序键。
  • 最后,通过 print(sorted_data) 输出按照多级排序规则排序后的列表。

五、总结

  sorted() 函数是 Python 中一个强大且灵活的工具,用于对可迭代对象进行排序。通过本文的介绍,你应该对其基本用法和一些高级技巧有了更深入的了解。无论是简单的排序还是复杂的排序需求,sorted() 函数都能帮助你轻松实现。在编写 Python 代码时,记得充分利用这个实用函数,提高代码的可读性和效率。

  • 15
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值