Python中的sorted()函数介绍及使用技巧分享
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函数可以指定自定义的排序规则,使得排序结果更加灵活。
