在 Python 中,lambda
表达式可以与排序函数结合使用,以下是几种常见的使用lambda
进行排序的方法:
一、对列表进行简单排序
假设有一个整数列表:
收起
python
复制
lst = [4, 2, 7, 1, 9] sorted_lst = sorted(lst) print(sorted_lst)
输出:[1, 2, 4, 7, 9]
。
如果想要降序排序,可以使用reverse=True
参数:
收起
python
复制
sorted_lst_desc = sorted(lst, reverse=True) print(sorted_lst_desc)
输出:[9, 7, 4, 2, 1]
。
二、对列表中的复杂对象进行排序
- 例如有一个包含学生信息的列表,每个元素是一个字典,包含学生的名字和年龄:
收起
python
复制
students = [ {'name': 'Alice', 'age': 20}, {'name': 'Bob', 'age': 18}, {'name': 'Charlie', 'age': 22} ]
可以使用lambda
表达式根据学生的年龄进行升序排序:
收起
python
复制
sorted_students_by_age = sorted(students, key=lambda x: x['age']) print(sorted_students_by_age)
输出:
收起
plaintext
复制
[{'name': 'Bob', 'age': 18}, {'name': 'Alice', 'age': 20}, {'name': 'Charlie', 'age': 22}]
- 也可以根据学生的名字进行排序:
收起
python
复制
sorted_students_by_name = sorted(students, key=lambda x: x['name']) print(sorted_students_by_name)
输出:
收起
plaintext
复制
[{'name': 'Alice', 'age': 20}, {'name': 'Bob', 'age': 18}, {'name': 'Charlie', 'age': 22}]
三、对元组列表进行排序
假设有一个元组列表,每个元组包含两个元素:
收起
python
复制
tuples = [(3, 'apple'), (1, 'banana'), (2, 'cherry')]
可以使用lambda
表达式根据元组的第一个元素进行排序:
收起
python
复制
sorted_tuples = sorted(tuples, key=lambda x: x[0]) print(sorted_tuples)
输出:[(1, 'banana'), (2, 'cherry'), (3, 'apple')]
。
如果想要根据元组的第二个元素进行排序:
收起
python
复制
sorted_tuples_by_second_element = sorted(tuples, key=lambda x: x[1]) print(sorted_tuples_by_second_element)
输出:[(2, 'cherry'), (3, 'apple'), (1, 'banana')]
。