欢迎访问宙启技术站
智能推送

使用`sorted()`函数对Python列表进行排序

发布时间:2023-05-26 18:42:49

sorted()函数是Python内置函数之一,它可以对列表、元组、字典中的数据进行排序。在本文中,我们将主要介绍如何使用sorted()函数对Python列表进行排序。

## 概述

sorted()函数可以对Python列表中的元素进行排序,排序后将返回一个新的排序过的列表,原始列表的顺序不会发生改变。sorted()函数内部使用了“TimSort”算法,这是一种非常快速的排序算法,并且能够对几乎所有已知类型的数据进行排序。

## 使用方法

sorted()函数的基本语法如下:

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

其中,iterable参数是需要排序的列表;key参数是排序时所用的关键字函数;reverse参数表示是否按照倒序排序。

下面是一些使用sorted()函数的例子:

### 示例1:使用默认参数排序

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

输出:

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

### 示例2:使用关键字参数排序

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

输出:

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

在这个示例中,我们传递了一个关键字函数len,它会根据每个字符串的长度对列表进行排列。因此,列表中最短的字符串在列表的前面,最长的字符串在列表的最后。

### 示例3:按照倒序排序

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

输出:

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

在这个示例中,我们将reverse参数设置为True,这样就能对列表进行倒序排序。

## 使用lambda函数排序

除了使用内置的函数作为关键字参数之外,我们还可以使用自定义的函数或lambda函数。lambda函数是一种匿名函数,它可以快速创建简单的函数。

### 示例4:使用lambda函数按照字符串的首字母排序

fruits = ['apple', 'banana', 'orange', 'kiwi', 'pear']
sorted_fruits = sorted(fruits, key=lambda x: x[0])
print(sorted_fruits)

输出:

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

在这个示例中,我们创建了一个lambda函数,它会根据每个字符串的首字母对列表进行排列。因此,以字母“A”开头的水果在列表的前面,以字母“P”开头的水果在列表的最后。

## 注意事项

需要记住的一点是,sorted()函数会返回一个新的已排序的列表,而不会修改原始列表。如果您希望在原始列表上进行修改,请使用列表的sort()方法。

此外,由于sorted()函数是使用“TimSort”算法排序的,所以它的性能非常优秀。对于大型数据集,排序速度可能会更快。