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

Python中的sorted()函数及其常见参数详解

发布时间:2023-07-06 00:54:53

sorted()函数是Python内置的对列表、元组、字典、字符串等可迭代对象进行排序的函数。sorted()函数返回一个新的列表,而不是修改原始列表。

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

- iterable:表示要排序的可迭代对象,如列表、元组、字典、字符串等。

- key:是一个函数,用来指定排序的关键字。该函数接受一个参数,并返回一个用来比较的值。默认为None,表示按照元素的原始值进行排序。

- reverse:一个布尔值,用来指定排序的顺序是升序还是降序。默认为False,表示升序排序。

下面详细介绍一下sorted()函数的常见参数:

1. iterable

必选参数,表示要排序的可迭代对象。可以是任何可迭代对象,比如列表、元组、字典、字符串等。

2. key

可选参数,用来指定排序的关键字。可以是一个函数或者lambda表达式。该函数接受一个参数,并返回一个用来比较的值。通过指定key参数,可以根据元素的某个属性或规则进行排序。

例如,要按照列表中元素的长度进行排序,可以使用len作为key参数:

lst = ['apple', 'banana', 'cherry']
new_lst = sorted(lst, key=len)
print(new_lst)  # ['apple', 'cherry', 'banana']

3. reverse

可选参数,一个布尔值,用来指定排序的顺序是升序还是降序。默认为False,表示升序排序。

例如,要按照降序进行排序,可以设置reverse为True:

lst = [3, 1, 4, 1, 5, 9, 2, 6]
new_lst = sorted(lst, reverse=True)
print(new_lst)  # [9, 6, 5, 4, 3, 2, 1, 1]

4. 字符串特殊参数

对于字符串排序,还可以使用特殊的参数:

- 使用key=str.lower可以忽略字符串的大小写进行排序:

lst = ['apple', 'Banana', 'Cherry']
new_lst = sorted(lst, key=str.lower)
print(new_lst)  # ['apple', 'Banana', 'Cherry']

- 使用reverse=True和key=str.lower可以实现忽略大小写的降序排序:

lst = ['apple', 'Banana', 'Cherry']
new_lst = sorted(lst, reverse=True, key=str.lower)
print(new_lst)  # ['Cherry', 'Banana', 'apple']

综上所述,sorted()函数是一个强大且灵活的排序函数,通过合理使用key参数和reverse参数,可以满足不同排序需求。