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

如何使用Python中的sorted()函数进行排序操作

发布时间:2023-05-25 12:43:55

在Python中,sorted()函数是一种用于排序序列或列表的内置函数,它通常用于将一些无序的数据按一定的规则进行排序。sorted()函数接受一个可迭代对象,例如一个列表或元组,然后返回一个新的已排序的列表。sorted()需要一个关键字参数key,用来指定排序的关键字。

语法

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

- iterable:表示要排序的序列,通常是一个列表或元组。

- key:可选参数,用来指定一个函数,该函数业将作为排序关键字,用来对 iterable 中的每个元素进行排序。

- reverse:可选参数,如果 True 则降序排序,否则升序,默认为升序。

示例1:对列表进行排序

jobs = ['coder', 'teacher', 'engineer', 'doctor', 'pilot']
sorted_jobs = sorted(jobs) # 默认升序
print(sorted_jobs) # ['coder', 'doctor', 'engineer', 'pilot', 'teacher']

sorted_jobs_desc = sorted(jobs, reverse=True) # 降序
print(sorted_jobs_desc) # ['teacher', 'pilot', 'engineer', 'doctor', 'coder']

示例2:使用key参数进行自定义排序

ages = [(24, 'Mary'), (28, 'John'), (21, 'David'), (35, 'Emily'), (42, 'Michael')]
sorted_ages = sorted(ages, key=lambda x: x[0]) # 按年龄升序排序
print(sorted_ages) # [(21, 'David'), (24, 'Mary'), (28, 'John'), (35, 'Emily'), (42, 'Michael')]

sorted_names = sorted(ages, key=lambda x: x[1]) # 按名字升序排序
print(sorted_names) # [(21, 'David'), (35, 'Emily'), (42, 'Michael'), (24, 'Mary'), (28, 'John')]

除了使用lambda表达式来定义排序关键字,还可以通过函数来定义排序关键字。例如下面的代码就定义了一个函数myFunc用来指定排序关键字:

def myFunc(e):
  return len(e)

fruits = ['apple', 'banana', 'cherry', 'kiwi', 'orange']
sorted_fruits = sorted(fruits, key=myFunc)
print(sorted_fruits) # ['kiwi', 'apple', 'banana', 'orange', 'cherry']

总之,sorted()是一个非常强大的Python函数,可以用于实现各种排序需求。它不仅可以进行简单的升降序排序,还可以通过关键字参数key来自定义排序关键字,实现更加复杂的排序逻辑。在Python的开发过程中,我们通常都会用到sorted()函数来进行数据处理和分析,建议大家多多熟悉和了解。