Python函数如何实现列表的排序?
发布时间:2023-06-10 05:00:53
Python提供了很多内置函数来对列表进行排序。这些函数返回的结果是一个新的有序列表,而原来的列表不会被改变。下面介绍几个常用的排序函数。
1. sort()函数
sort()函数是Python内置的排序函数,可以对列表进行原地排序,也就是对原来的列表进行排序,不会生成新的列表。该函数的语法为:
list.sort(key=None, reverse=False)
其中,key和reverse都是可选参数。
- key:指定用于排序的函数,可以是任何有返回值的函数。默认值为None,即按照元素的大小比较进行排序。
- reverse:指定排序的顺序。默认值为False,即升序排序,如果设置为True,则进行降序排序。
2. sorted()函数
sorted()函数也是Python内置的排序函数,与sort()不同的是,sorted()会返回一个新的有序列表,而不是在原来的列表上进行排序。该函数的语法为:
sorted(iterable, key=None, reverse=False)
其中,iterable表示待排序的可迭代对象,比如列表、元组、字符串等。key和reverse同sort()函数。
3. lambda表达式
lambda表达式是一种匿名函数,也可以用于对列表进行排序。它的语法为:
lambda arg1, arg2, ... : expression
其中arg1, arg2, ...表示函数的参数,expression表示函数的返回值。lambda表达式可以与sort()和sorted()函数配合使用,用于指定排序规则。
例如,对一个包含多个字典的列表按照某个键进行排序:
students = [{'name': 'Tom', 'age': 18, 'score': 90},
{'name': 'Jack', 'age': 20, 'score': 80},
{'name': 'Mary', 'age': 19, 'score': 95},
{'name': 'Lisa', 'age': 21, 'score': 85}]
# 按照成绩从高到低排序
students.sort(key=lambda x: x['score'], reverse=True)
print(students)
输出结果为:
[{'name': 'Mary', 'age': 19, 'score': 95},
{'name': 'Tom', 'age': 18, 'score': 90},
{'name': 'Lisa', 'age': 21, 'score': 85},
{'name': 'Jack', 'age': 20, 'score': 80}]
以上就是Python中常用的列表排序函数和lambda表达式的相关介绍,通过这些函数和表达式可以很方便地实现列表的排序。
