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

Python中的sorted()函数介绍及使用技巧分享

发布时间:2023-06-19 22:57:45

Python的sorted()函数是一个非常有用的内置函数,它可以对可迭代对象进行排序。这个函数可以用来排序list、tuple、字符串等可迭代对象,甚至可以自定义排序规则。下面我们来深入了解sorted()函数的使用及技巧。

一、函数语法

sorted()函数的语法如下:

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

其中,

1. iterable - 必须,表示可迭代对象(list、tuple、字符串等);

2. key - 可选,表示一个用来确定每个元素排序位置的函数;

3. reverse - 可选,表示排序是否应该逆序。默认为False。

二、函数功能

sorted()函数的作用是对可迭代的对象进行升序排列或者降序排列。它可以用于排序的对象包括list、tuple、字符串等。

三、函数示例

下面我们通过几个示例来展示sorted()函数的用法。

1. 对list排序

首先,我们来看一个对list排序的例子:

>>> a = [5, 3, 1, 4, 2]

>>> b = sorted(a)

>>> print(b)

[1, 2, 3, 4, 5]

可以看到,我们将列表a传入sorted()函数中,并将返回结果赋值给变量b。最后我们输出变量b,可以看到它已经升序排列好了。

2. 对字符串排序

下面我们来看一个对字符串排序的例子:

>>> s = 'hello world'

>>> b = sorted(s)

>>> print(b)

[' ', 'd', 'e', 'h', 'l', 'l', 'o', 'o', 'r', 'w']

我们也可以通过join()函数将字符串看作一个字符串列表,再将结果转回字符串:

>>> s = 'hello world'

>>> b = ''.join(sorted(s))

>>> print(b)

' dehllloorw'

可以看到,sorted()函数对字符串也同样适用,它将字符串中的每个字符都拆分开来分别排序。

3. 自定义排序规则

如果我们想自定义排序规则,可以传入一个key函数,这个函数将应用于每个元素,从而决定它们的排序位置。下面我们来看一个示例:

>>> a = [5, 3, 1, 4, 2]

>>> b = sorted(a, key=lambda x: -x)

>>> print(b)

[5, 4, 3, 2, 1]

我们传入的key函数是lambda x: -x,它将列表中的每个元素取相反数(即-x),这样就能按照相反的顺序来排序。

4. 对字典排序

如果我们想按照字典中的某个字段对字典进行排序,可以用itemgetter函数作为sorted函数的key参数。下面我们来看一个示例:

>>> from operator import itemgetter

>>> a = [{'name': 'Tom', 'age': 23}, {'name': 'Jack', 'age': 20}, {'name': 'Mary', 'age': 25}]

>>> b = sorted(a, key=itemgetter('age'))

>>> print(b)

[{'name': 'Jack', 'age': 20}, {'name': 'Tom', 'age': 23}, {'name': 'Mary', 'age': 25}]

我们传入的key函数是itemgetter('age'),它指定了我们要按照字典的'age'字段进行排序。

四、小结

本文向大家介绍了Python的sorted()函数的基本用法和常见技巧,希望对大家的学习有所帮助。在使用sorted()函数时需要注意的是,原对象并没有被改变,而是sorted()函数返回了一个全新的已排好序的对象。同时,使用key函数可以指定自定义的排序规则,使得排序结果更加灵活。