people_by_age = sorted(people, key=lambda x: x["age"])
时间: 2024-03-13 13:44:23 浏览: 84
这行代码是按照年龄对人员列表 `people` 进行排序,排序的依据是每个人的字典中 `age` 这个键对应的值。具体来说,`sorted` 函数会对 `people` 中的每个元素(即每个人的字典)调用 `key` 函数,将其返回值作为排序的关键字。这里使用了一个 lambda 表达式 `lambda x: x["age"]`,表示对于每个元素(即每个人的字典),返回其 `age` 键对应的值。因此,`sorted` 函数会根据每个人的年龄对人员列表进行排序,得到一个新的列表 `people_by_age`,其中每个元素仍然是一个人的字典。
需要注意的是,`sorted` 函数默认是升序排序,如果需要降序排序可以加上 `reverse=True` 参数。例如:
```python
people_by_age_desc = sorted(people, key=lambda x: x["age"], reverse=True)
```
这样就可以得到年龄降序排列的人员列表了。
相关问题
自定义类传入lambda
可以将lambda表达式作为参数传递给自定义类的方法或构造函数,然后在方法或构造函数内部使用该lambda表达式。
例如,假设有一个自定义的Person类,其中包含一个sort方法,可以通过传入一个lambda表达式来对Person对象进行排序:
```python
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def sort(self, key=lambda x: x.name):
return sorted(self, key=key)
people = [Person('Alice', 25), Person('Bob', 30), Person('Charlie', 20)]
# 使用lambda表达式按年龄排序
sorted_people = people.sort(key=lambda x: x.age)
```
在上面的例子中,sort方法接受一个名为key的参数,该参数是一个lambda表达式,用于指定排序的键。使用lambda表达式可以方便地自定义排序规则,而不需要定义一个单独的函数。
lambda表达式的用法
lambda表达式是一种简洁的匿名函数定义方式,它能够在Python中快速定义简单的函数。lambda表达式的语法形式为:
```python
lambda 参数: 表达式
```
其中,参数是函数的输入参数,表达式是函数的返回结果。lambda表达式主要用于创建一些简单的函数,这些函数通常只包含一行代码。
下面是几个使用lambda表达式的示例:
1. 用lambda定义一个求平方的函数:
```python
square = lambda x: x**2
print(square(5)) # 输出25
```
2. 使用lambda表达式对列表进行排序:
```python
numbers = [4, 2, 7, 1, 5]
sorted_numbers = sorted(numbers, key=lambda x: x)
print(sorted_numbers) # 输出[1, 2, 4, 5, 7]
```
3. 使用lambda表达式对字典列表进行排序:
```python
people = [{'name': 'Alice', 'age': 25}, {'name': 'Bob', 'age': 20}, {'name': 'Charlie', 'age': 30}]
sorted_people = sorted(people, key=lambda x: x['age'])
print(sorted_people)
# 输出[{'name': 'Bob', 'age': 20}, {'name': 'Alice', 'age': 25}, {'name': 'Charlie', 'age': 30}]
```
通过lambda表达式,我们可以快速定义一些简单的函数,并在需要时直接使用它们。
阅读全文