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

Python中的sorted函数:如何对可迭代对象进行排序?

发布时间:2023-06-21 12:11:48

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中非常实用的一个内置函数,对于排序和统计等操作,它可以帮助我们节省大量代码编写的时间和精力。