Python中的sorted()函数——排序列表
Python中的sorted()函数是内置的排序函数。该函数可以用于对列表、元组、字典等进行排序。在本文中,我们将着眼于对列表进行排序。
sorted()函数的语法
在Python中,sorted()函数的语法如下:
sorted(iterable, key=None, reverse=False)
其中:
- iterable:必选参数,表示要排序的序列,可以是列表、元组等。
- key:可选参数,用来指定排序的按键(排序的依据)。如果不指定,则按默认规则排序。
- reverse:可选参数,用来指定排序的顺序(升序或降序)。默认升序。
sorted()函数的返回值
sorted()函数返回一个新的排序后的列表。
默认按照升序排序
我们首先来看一个简单的例子,如下所示:
>>> a = [3, 2, 1]
>>> b = sorted(a)
>>> print(b)
输出结果为:
[1, 2, 3]
可以看到,sorted()函数返回一个升序排序的新列表<b>。</b>
按照降序排序
如果我们想要按照降序排序,只需将reverse参数设为True即可,例如:
>>> a = [3, 2, 1]
>>> b = sorted(a, reverse=True)
>>> print(b)
输出结果为:
[3, 2, 1]
可以看到,现在的排序结果是降序的。
按照字典的值排序
除了按照默认的规则进行排序,我们还可以按照自定义的规则进行排序。例如,我们可以对字典的值进行排序,代码如下:
>>> d = {'cat': 1, 'bird': 3, 'dog': 2}
>>> sorted_d = sorted(d.items(), key=lambda x: x[1])
>>> print(sorted_d)
输出结果为:
[('cat', 1), ('dog', 2), ('bird', 3)]
可以看到,我们将字典转换成了一个元组的列表,然后按照元组的第二项(即字典的值)进行排序,得到了一个按照字典的值排序的新列表。
按照字符串的长度排序
我们还可以使用sorted()函数对字符串的长度进行排序。例如,我们可以对一个字符串列表按照字符串长度进行排序,代码如下:
>>> words = ['Python', 'C++', 'Java', 'JavaScript', 'R']
>>> sorted_words = sorted(words, key=lambda x: len(x))
>>> print(sorted_words)
输出结果为:
['R', 'C++', 'Java', 'Python', 'JavaScript']
可以看到,我们将words列表按照字符串长度进行排序,得到了一个新的按照字符串长度排序的列表。
结语
Python中的sorted()函数是一个非常有用的函数,在对列表进行排序时常被用到。通过本文的介绍,相信大家已经了解了如何使用sorted()函数进行排序了。需要注意的是,sorted()函数返回的是一个新的列表,原列表不会改变。
