目录
一、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()
函数的基本使用方法:
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)
输出排序后的列表。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)
输出排序后的列表。这里字符串被拆分为单个字符,然后按字母顺序排序。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
参数用于指定排序顺序。默认情况下,reverse
为 False
,表示升序排序;若设置为 True
,则表示降序排序。
除了基本功能外,sorted()
函数还支持一些高级用法,例如自定义排序键函数、多级排序等。以下是一些示例:
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)
输出按照单词的最后一个字母排序后的列表。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 代码时,记得充分利用这个实用函数,提高代码的可读性和效率。