用python编程:输入一个列表,其中每个元素是一个字典,每个字典项纪录了姓名和年龄。要求先按年龄降序,再按姓名升序对列表元素进行排序,输出结果
时间: 2024-03-12 16:43:31 浏览: 105
可以使用Python内置的sorted函数,结合lambda表达式,来实现对列表元素的排序。代码如下:
```python
# 定义输入列表
data = [
{'name': 'Tom', 'age': 25},
{'name': 'Jack', 'age': 23},
{'name': 'Rose', 'age': 25},
{'name': 'Lucy', 'age': 21}
]
# 对列表元素进行排序
sorted_data = sorted(data, key=lambda x: (-x['age'], x['name']))
# 输出排序结果
print(sorted_data)
```
输出结果为:
```
[{'name': 'Rose', 'age': 25}, {'name': 'Tom', 'age': 25}, {'name': 'Jack', 'age': 23}, {'name': 'Lucy', 'age': 21}]
```
其中,lambda表达式 `lambda x: (-x['age'], x['name'])` 中的 `-x['age']` 表示按年龄降序排序,`x['name']` 表示在年龄相同时按姓名升序排序。
阅读全文