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

Python中如何使用sorted函数进行排序?

发布时间:2023-05-29 04:30:19

sorted函数是Python内置的一个排序函数,用于对一个序列进行排序,使其按照一定规则排列。

使用sorted函数对一个序列进行排序有两种方式:

1. 使用sorted函数对原始序列进行排序,返回一个新序列。

sorted函数的基本用法为:

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

其中,iterable表示可迭代对象,比如列表、元组、字典等,keyreverse是可选参数。

key是一个函数,用于指定排序中的比较规则。例如,如果要按照字符串长度进行排序,可以使用key=len

lst = ['apple', 'banana', 'pear', 'watermelon']
sorted_lst = sorted(lst, key=len)
print(sorted_lst)  # ['pear', 'apple', 'banana', 'watermelon']

reverse表示排序顺序,如果为True,则降序排序;如果为False,则升序排序,默认为False。例如,将lst按照默认规则进行降序排序,可以使用reverse=True

lst = ['apple', 'banana', 'pear', 'watermelon']
sorted_lst = sorted(lst, reverse=True)
print(sorted_lst)  # ['watermelon', 'pear', 'banana', 'apple']

2. 对一个序列进行原地排序,不返回新序列。

如果想对原始序列进行排序,则可以使用sort方法。与sorted函数不同的是,该方法会对原始序列进行修改,返回值为None。

lst = ['apple', 'banana', 'pear', 'watermelon']
lst.sort()
print(lst)  # ['apple', 'banana', 'pear', 'watermelon']

需要注意的是,如果使用sort方法,不能同时指定keyreverse参数,如果需要使用这两个参数,则需要先使用sorted函数进行排序,再将结果赋值给原始序列。

lst = ['apple', 'banana', 'pear', 'watermelon']
lst = sorted(lst, key=len, reverse=True)
print(lst)  # ['watermelon', 'banana', 'apple', 'pear']