Python中的sorted函数详解

Python中的sorted函数详解

Python中的sorted函数详解

在Python中,sorted()函数是一个内置函数,用于对可迭代对象进行排序操作。它接受一个可迭代对象作为参数,并返回一个新的已排序的列表。sorted()函数的语法如下:

sorted(iterable, key=None, reverse=False)

其中,iterable是待排序的可迭代对象,key是一个函数,用于指定排序的规则,reverse是一个布尔值,如果设置为True,则表示降序排序,默认为升序排序。

按照默认规则排序

如果不指定key参数,sorted()函数将按照默认规则对可迭代对象进行排序。对于数字或字符串元素的列表,将按照大小或字典顺序进行排序。

numbers = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
sorted_numbers = sorted(numbers)
print(sorted_numbers)

输出为:

[1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9]

对于字符串列表,也可以按照字典顺序进行排序:

fruits = ['apple', 'orange', 'banana', 'pear']
sorted_fruits = sorted(fruits)
print(sorted_fruits)

输出为:

['apple', 'banana', 'orange', 'pear']

按照自定义规则排序

有时候我们希望根据自定义的规则对可迭代对象进行排序,这时可以通过key参数来指定排序规则。key参数接受一个函数作为输入,该函数用于生成一个排序关键字,sorted()函数会根据这个关键字进行排序。

按照长度排序

假设我们有一个字符串列表,希望按照字符串的长度进行排序,可以通过指定key=len来实现:

words = ['apple', 'orange', 'banana', 'pear']
sorted_words = sorted(words, key=len)
print(sorted_words)

输出为:

['pear', 'apple', 'orange', 'banana']

按照单词中某个字母出现的次数排序

假设我们有一个单词列表,希望按照单词中某个字母出现的次数进行排序,可以定义一个函数来实现排序规则。例如,我们可以按照单词中字母’e’的出现次数进行排序:

words = ['apple', 'orange', 'banana', 'pear']
def count_e(word):
    return word.count('e')

sorted_words = sorted(words, key=count_e)
print(sorted_words)

输出为:

['pear', 'apple', 'orange', 'banana']

实现降序排序

如果希望按照降序进行排序,可以将reverse参数设置为True。例如,对一个数字列表进行降序排序:

numbers = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
sorted_numbers_desc = sorted(numbers, reverse=True)
print(sorted_numbers_desc)

输出为:

[9, 6, 5, 5, 5, 4, 3, 3, 2, 1, 1]

结论

通过对sorted()函数的详细解析,我们可以灵活地对可迭代对象进行排序,无论是按照默认规则还是自定义规则。这为我们在处理数据时提供了更多的选择和控制,帮助我们更有效地完成各种排序任务。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程