Python中的sorted函数:如何对可迭代对象进行排序?
Python中的sorted函数是一个内置函数,它可以用来对可迭代对象进行排序。sorted函数的基本用法是将一个可迭代对象作为其参数,返回一个排好序的列表。sorted函数可以支持多种排序方式,包括升序排列、降序排列和自定义排序。
使用sorted函数对可迭代对象进行排序的基本语法如下:
sorted(iterable, key=None, reverse=False)
其中,iterable表示要排序的可迭代对象,可以是列表、元组、集合、字典等。key表示用来指定排序的键,它可以是一个函数或者lambda表达式;如果不指定,则默认使用元素本身进行比较排序。reverse表示是否使用降序排序,默认为False,即升序排序。
下面我们来看几个例子,说明如何使用sorted函数对列表、元组、集合和字典进行排序。
1. 对列表进行排序
对一个列表进行升序排序:
lst = [4, 8, 1, 3, 9, 5]
lst_sort = sorted(lst)
print(lst_sort)
输出结果为:[1, 3, 4, 5, 8, 9]
对一个列表进行降序排序:
lst = [4, 8, 1, 3, 9, 5]
lst_sort = sorted(lst, reverse=True)
print(lst_sort)
输出结果为:[9, 8, 5, 4, 3, 1]
使用key参数自定义排序,例如按元素绝对值大小排序:
lst = [4, -8, 1, -3, 9, -5]
lst_sort = sorted(lst, key=abs)
print(lst_sort)
输出结果为:[1, 3, 4, -5, -8, 9]
2. 对元组进行排序
对一个元组进行升序排序:
tpl = (4, 8, 1, 3, 9, 5)
tpl_sort = sorted(tpl)
print(tpl_sort)
输出结果为:[1, 3, 4, 5, 8, 9]
使用key参数自定义排序,例如按字母长度排序:
tpl = ('apple', 'banana', 'pear', 'orange', 'kiwi')
tpl_sort = sorted(tpl, key=len)
print(tpl_sort)
输出结果为:['pear', 'kiwi', 'apple', 'banana', 'orange']
3. 对集合进行排序
对一个集合进行升序排序:
st = {4, 8, 1, 3, 9, 5}
st_sort = sorted(st)
print(st_sort)
输出结果为:[1, 3, 4, 5, 8, 9]
4. 对字典进行排序
对一个字典进行排序,按键值升序排序:
dct = {'b': 2, 'a': 1, 'c': 3}
dct_sort = sorted(dct.items())
print(dct_sort)
输出结果为:[('a', 1), ('b', 2), ('c', 3)]
使用key参数自定义排序,例如按键值降序排序:
dct = {'b': 2, 'a': 1, 'c': 3}
dct_sort = sorted(dct.items(), key=lambda x: x[1], reverse=True)
print(dct_sort)
输出结果为:[('c', 3), ('b', 2), ('a', 1)]
从上面的例子可以看出,使用sorted函数可以方便地对各种类型的可迭代对象进行排序。需要注意的是,默认情况下sorted函数返回一个列表,而不是原对象进行修改。如果需要对原对象进行修改,可以使用sort方法。此外,还可以通过指定cmp函数来自定义排序规则。总之,sorted函数是Python中非常实用的一个内置函数,对于排序和统计等操作,它可以帮助我们节省大量代码编写的时间和精力。
