Python函数:sorted()的使用及示例
Python是一种十分流行的编程语言,作为一种高级编程语言,它内置了很多方便的函数,一个常用的Python内置函数就是sorted()。sorted()函数通常用来对序列进行排序,例如列表(list)、元组(tuple)、字典(dict)等数据类型。本文将讲解sorted()函数的用法、参数和示例。
1. sorted()函数的用法:
sorted()函数用于对序列进行排序,它的语法格式如下:
sorted(iterable, key=None, reverse=False)
其中,iterable表示要排序的可迭代对象,例如:列表、元组等;
key(可选)函数用于指定一个函数来作为排序的依据,比如针对元素访问元组的哪个位置进行排序,当然也可以设定自己定义的函数来排序,如果不指定此参数,则默认使用序列中每个元素的 个元素进行排序,即按照元素首字母的字典序进行排序。
reverse(可选)表示是否反向排序,即升序排序还是降序排序,如果不指定此参数,则默认按照升序排序。
2. sorted()函数的参数:
2.1 iterable
必需,要排序的序列,可以是列表、元组、集合、字典等,注意:字典类型默认只会对字典的键进行排序。
2.2 key
可选,用来指定从每个列表元素中参考排序依据的函数。
2.3 reverse
可选,用来指定排序的顺序,默认为 False 表示升序排序,True 则表示降序排序。
3. sorted()函数的示例:
下面我们将会结合一些示例来介绍sorted()函数的用法。
3.1 对list进行排序
对于列表的排序,最简单的方式就是调用sorted()函数。例如,我们有一个列表,它包含多个整数,我们需要将这个列表按照从小到大的顺序进行排序。下面是代码示例:
lst = [5, 3, 6, 1, 2, 8, 7, 4] new_lst = sorted(lst) print(new_lst)
输出结果为:
[1, 2, 3, 4, 5, 6, 7, 8]
3.2 按照元素的某个属性或键进行排序
如果列表中的元素包含多个属性,我们可以使用key参数来指定排序的依据。例如,我们需要对以下字典列表进行排序,按照students字典中的age属性来进行排序:
students = [
{'name': 'Tom', 'age': 18},
{'name': 'Alice', 'age': 21},
{'name': 'John', 'age': 19},
{'name': 'Mary', 'age': 22}
]
new_students = sorted(students, key=lambda x: x['age'])
print(new_students)
以上代码中lambda表达式指定了每个元素排序所依赖的属性(即age)。
输出结果为:
[{'name': 'Tom', 'age': 18}, {'name': 'John', 'age': 19},
{'name': 'Alice', 'age': 21}, {'name': 'Mary', 'age': 22}]
如果我们需要倒序排序,可以设置reverse参数为True,示例代码如下:
new_students = sorted(students, key=lambda x: x['age'], reverse=True) print(new_students)
则输出:
[{'name': 'Mary', 'age': 22}, {'name': 'Alice', 'age': 21},
{'name': 'John', 'age': 19}, {'name': 'Tom', 'age': 18}]
3.3 对字符串进行排序
对于字符串的排序,我们可以将其转化为单个字符的列表进行排序。代码示例如下:
str = 'ACDFB' new_str = sorted(list(str)) print(new_str)
输出结果为:
['A', 'B', 'C', 'D', 'F']
3.4 排序算法
sorted()函数的底层实现使用的是一个算法,当序列长度较大而又比较无序时,排序速度较难保证。因此,在某些情况下,我们可以采用sort()函数来代替sorted()函数进行排序。
sort()函数是一个列表函数,仅适用于列表(list)类型。代码示例如下:
lst = [3, 9, 2, 5, 8, 6] lst.sort() print(lst)
输出结果为:
[2, 3, 5, 6, 8, 9]
当然,还有很多具体情况下的排序方式,可以根据具体需求来使用sorted()函数或sort()函数。总之,了解和掌握sorted()函数对于Python程序的开发和编写将有帮助。
