people_by_age = sorted(people, key=lambda x: x["age"])
时间: 2024-03-13 08:44:23 浏览: 23
这行代码是按照年龄对人员列表 `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)
```
这样就可以得到年龄降序排列的人员列表了。
相关问题
第一行输入一个正整数 N,随后的N 行各输入一个人的姓名和年龄,中间用空格分隔(形如 “Tom 18” ),将字符串转为形如 {"name":"Tom","age":18} 的字典,按顺序加入到列表中,得到一个元素为字典的列表,分别根据年龄和姓名对其排序输出。
好的,看起来你需要一个Python程序来实现这个需求。下面是一个可能的实现:
```python
n = int(input()) # 输入人数
people = [] # 初始化存储人员信息的列表
# 循环读入人员信息并转换为字典格式
for i in range(n):
name, age = input().split()
person = {"name": name, "age": int(age)}
people.append(person)
# 按照年龄排序并输出
people_by_age = sorted(people, key=lambda x: x["age"])
print("按照年龄排序:")
for person in people_by_age:
print(person)
# 按照姓名排序并输出
people_by_name = sorted(people, key=lambda x: x["name"])
print("按照姓名排序:")
for person in people_by_name:
print(person)
```
这个程序首先读入人数,然后循环读入每个人的信息,转换成字典格式并添加到一个列表中。接着,使用 `sorted` 函数按照年龄和姓名分别排序,然后输出排序后的结果。注意,这个程序假设输入的人名不带空格,如果有空格则需要使用其他方法来处理。
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表达式,我们可以快速定义一些简单的函数,并在需要时直接使用它们。